下面这些C语言基础算法案例都是经过测试和验证过了的,欢迎各位使用。 本文是该系列的第一篇,都是一些相对初级的算法,很适合刚开始学C语言的同学。 1、C语言打印一条语句 源代码: 1234567 | /* C Program to print a sentence. */ #include <stdio.h> int main() { printf ( "C Programming" ); /* printf() prints the content inside quotation */ return 0; } |
输出: C Programming 2、C语言打印用户输入的一个整数 源代码: 123456789 | #include <stdio.h> int main() { int num; printf ( "Enter a integer: " ); scanf ( "%d" ,&num); /* Storing a integer entered by user in variable num */ printf ( "You entered: %d" ,num); return 0; } |
输出: Enter a integer: 25 You entered: 25 3、C语言实现两个整数相加 源代码: 12345678910111213 | /*C programming source code to add and display the sum of two integers entered by user */ #include <stdio.h> int main( ) { int num1, num2, sum; printf ( "Enter two integers: " ); scanf ( "%d %d" ,&num1,&num2); /* Stores the two integer entered by user in variable num1 and num2 */ sum=num1+num2; /* Performs addition and stores it in variable sum */ printf ( "Sum: %d" ,sum); /* Displays sum */ return 0; } |
输出: Enter two integers: 12 11 Sum: 23 4、C语言实现两个小数相乘 源代码: 123456789101112 | /*C program to multiply and display the product of two floating point numbers entered by user. */ #include <stdio.h> int main( ) { float num1, num2, product; printf ( "Enter two numbers: " ); scanf ( "%f %f" ,&num1,&num2); /* Stores the two floating point numbers entered by user in variable num1 and num2 respectively */ product = num1*num2; /* Performs multiplication and stores it */ printf ( "Product: %f" ,product); return 0; } |
输出: Enter two numbers: 2.4 1.1 Product: 2.640000 5、C语言查找字符的ASCII值 源代码: 12345678910 | /* Source code to find ASCII value of a character entered by user */ #include <stdio.h> int main(){ char c; printf ( "Enter a character: " ); scanf ( "%c" ,&c); /* Takes a character from user */ printf ( "ASCII value of %c = %d" ,c,c); return 0; } |
输出: Enter a character: G ASCII value of G = 71 6、C语言根据用户输入的整数做商和余数 源代码: 123456789101112131415 | /* C Program to compute remainder and quotient */ #include <stdio.h> int main(){ int dividend, divisor, quotient, remainder; printf ( "Enter dividend: " ); scanf ( "%d" ,÷nd); printf ( "Enter divisor: " ); scanf ( "%d" ,&divisor); quotient=dividend/divisor; /* Computes quotient */ remainder=dividend%divisor; /* Computes remainder */ printf ( "Quotient = %d\n" ,quotient); printf ( "Remainder = %d" ,remainder); return 0; } |
输出: Enter dividend: 25 Enter divisor: 4 Quotient = 6 Remainder = 1 7、C语言获取整型、单精度浮点型、双精度浮点型和字符型的长度 基本语法是: 123 | temp = sizeof (operand); /* Here, temp is a variable of type integer,i.e, sizeof() operator returns integer value. */ |
源代码: 1234567891011121314 | /* This program computes the size of variable using sizeof operator.*/ #include <stdio.h> int main(){ int a; float b; double c; char d; printf ( "Size of int: %d bytes\n" , sizeof (a)); printf ( "Size of float: %d bytes\n" , sizeof (b)); printf ( "Size of double: %d bytes\n" , sizeof (c)); printf ( "Size of char: %d byte\n" , sizeof (d)); return 0; } |
输出: Size of int: 4 bytes Size of float: 4 bytes Size of double: 8 bytes Size of char: 1 byte 注:可能会由于系统的不同出来的结果也不尽相同。 8、C语言获取关键字long的长度范围 源代码: 12345678910 | #include <stdio.h> int main(){ int a; long int b; /* int is optional. */ long long int c; /* int is optional. */ printf ( "Size of int = %d bytes\n" , sizeof (a)); printf ( "Size of long int = %ld bytes\n" , sizeof (b)); printf ( "Size of long long int = %ld bytes" , sizeof (c)); return 0; } |
输出: Size of int = 4 bytes Size of long int = 4 bytes Size of long long int = 8 bytes 9、C语言交换数值 源代码: 1234567891011121314 | #include <stdio.h> int main(){ float a, b, temp; printf ( "Enter value of a: " ); scanf ( "%f" ,&a); printf ( "Enter value of b: " ); scanf ( "%f" ,&b); temp = a; /* Value of a is stored in variable temp */ a = b; /* Value of b is stored in variable a */ b = temp; /* Value of temp(which contains initial value of a) is stored in variable b*/ printf ( "\nAfter swapping, value of a = %.2f\n" , a); printf ( "After swapping, value of b = %.2f" , b); return 0; } |
输出: Enter value of a: 1.20 Enter value of b: 2.45 After swapping, value of a = 2.45 After swapping, value of b = 1.2 10、C语言检查数值是奇数还是偶数 源代码: 12345678910111213 | /*C program to check whether a number entered by user is even or odd. */ #include <stdio.h> int main(){ int num; printf ( "Enter an integer you want to check: " ); scanf ( "%d" ,&num); if ((num%2)==0) /* Checking whether remainder is 0 or not. */ printf ( "%d is even." ,num); else printf ( "%d is odd." ,num); return 0; } |
输出1: Enter an integer you want to check: 25 25 is odd. 输出2: Enter an integer you want to check: 12 12 is even. 也可以用条件运算符解决: 12345678910 | /* C program to check whether an integer is odd or even using conditional operator */ #include <stdio.h> int main(){ int num; printf ( "Enter an integer you want to check: " ); scanf ( "%d" ,&num); ((num%2)==0) ? printf ( "%d is even." ,num) : printf ( "%d is odd." ,num); return 0; } |
11、C语言检查是元音还是辅音 源代码: 1234567891011 | #include <stdio.h> int main(){ char c; printf ( "Enter an alphabet: " ); scanf ( "%c" ,&c); if (c== 'a' ||c== 'A' ||c== 'e' ||c== 'E' ||c== 'i' ||c== 'I' ||c== 'o' ||c== 'O' ||c== 'u' ||c== 'U' ) printf ( "%c is a vowel." ,c); else printf ( "%c is a consonant." ,c); return 0; } |
输出1: Enter an alphabet: i i is a vowel. 输出2: Enter an alphabet: G G is a consonant. 也可以用条件运算符解决 12345678910 | /* C program to check whether a character is vowel or consonant using conditional operator */ #include <stdio.h> int main(){ char c; printf ( "Enter an alphabet: " ); scanf ( "%c" ,&c); (c== 'a' ||c== 'A' ||c== 'e' ||c== 'E' ||c== 'i' ||c== 'I' ||c== 'o' ||c== 'O' ||c== 'u' ||c== 'U' ) ? printf ( "%c is a vowel." ,c) : printf ( "%c is a consonant." ,c); return 0; } |
输出结果和上面的程序相同。 12、C语言实现从三个数值中查找最大值 实现1: 123456789101112131415 | /* C program to find largest number using if statement only */ #include <stdio.h> int main(){ float a, b, c; printf ( "Enter three numbers: " ); scanf ( "%f %f %f" , &a, &b, &c); if (a>=b && a>=c) printf ( "Largest number = %.2f" , a); if (b>=a && b>=c) printf ( "Largest number = %.2f" , b); if (c>=a && c>=b) printf ( "Largest number = %.2f" , c); return 0; } |
实现2: 1234567891011121314151617181920212223 | /* C program to find largest number using if...else statement */ #include <stdio.h> int main(){ float a, b, c; printf ( "Enter three numbers: " ); scanf ( "%f %f %f" , &a, &b, &c); if (a>=b) { if (a>=c) printf ( "Largest number = %.2f" ,a); else printf ( "Largest number = %.2f" ,c); } else { if (b>=c) printf ( "Largest number = %.2f" ,b); else printf ( "Largest number = %.2f" ,c); } return 0; } |
实现3: 123456789101112131415 | /* C Program to find largest number using nested if...else statement */ #include <stdio.h> int main(){ float a, b, c; printf ( "Enter three numbers: " ); scanf ( "%f %f %f" , &a, &b, &c); if (a>=b && a>=c) printf ( "Largest number = %.2f" , a); else if (b>=a && b>=c) printf ( "Largest number = %.2f" , b); else printf ( "Largest number = %.2f" , c); return 0; } |
输出结果相同: Enter three numbers: 12.2 13.452 10.193 Largest number = 13.45 13、C语言解一元二次方程 源代码: 123456789101112131415161718192021222324252627282930 | /* Program to find roots of a quadratic equation when coefficients are entered by user. */ /* Library function sqrt() computes the square root. */ #include <stdio.h> #include <math.h> /* This is needed to use sqrt() function.*/ int main() { float a, b, c, determinant, r1,r2, real, imag; printf ( "Enter coefficients a, b and c: " ); scanf ( "%f%f%f" ,&a,&b,&c); determinant=b*b-4*a*c; if (determinant>0) { r1= (-b+ sqrt (determinant))/(2*a); r2= (-b- sqrt (determinant))/(2*a); printf ( "Roots are: %.2f and %.2f" ,r1 , r2); } else if (determinant==0) { r1 = r2 = -b/(2*a); printf ( "Roots are: %.2f and %.2f" , r1, r2); } else { real= -b/(2*a); imag = sqrt (-determinant)/(2*a); printf ( "Roots are: %.2f+%.2fi and %.2f-%.2fi" , real, imag, real, imag); } return 0; } |
输出1: Enter coefficients a, b and c: 2.3 4 5.6 Roots are: -0.87+1.30i and -0.87-1.30i 输出2: Enter coefficients a, b and c: 4 1 0 Roots are: 0.00 and -0.25 14、C语言检查是否是闰年 源代码: 1234567891011121314151617181920212223 | /* C program to check whether a year is leap year or not using if else statement.*/ #include <stdio.h> int main(){ int year; printf ( "Enter a year: " ); scanf ( "%d" ,&year); if (year%4 == 0) { if ( year%100 == 0) /* Checking for a century year */ { if ( year%400 == 0) printf ( "%d is a leap year." , year); else printf ( "%d is not a leap year." , year); } else printf ( "%d is a leap year." , year ); } else printf ( "%d is not a leap year." , year); return 0; } |
输出1: Enter year: 2000 2000 is a leap year. 输出2: Enter year: 1900 1900 is not a leap year. 输出3: Enter year: 2012 2012 is a leap year. 15、C语言检查一个数是正数、负数还是零 源代码: 1234567891011121314151617 | #include <stdio.h> int main() { float num; printf ( "Enter a number: " ); scanf ( "%f" ,&num); if (num<=0) { if (num==0) printf ( "You entered zero." ); else printf ( "%.2f is negative." ,num); } else printf ( "%.2f is positive." ,num); return 0; } |
也可以使用if-else语句 12345678910111213141516 | /* C programming code to check whether a number is negative or positive or zero using nested if...else statement. */ #include <stdio.h> int main() { float num; printf ( "Enter a number: " ); scanf ( "%f" ,&num); if (num<0) /* Checking whether num is less than 0*/ printf ( "%.2f is negative." ,num); else if (num>0) /* Checking whether num is greater than zero*/ printf ( "%.2f is positive." ,num); else printf ( "You entered zero." ); return 0; } |
输出1: Enter a number: 12.3 12.30 is positive. 输出2: Enter a number: -12.3 -12.30 is negative. 输出3: Enter a number: 0 You entered zero. 16、C语言检查某字符串是不是字母 源代码: 1234567891011121314 | /* C programming code to check whether a character is alphabet or not.*/ #include <stdio.h> int main() { char c; printf ( "Enter a character: " ); scanf ( "%c" ,&c); if ( (c>= 'a' && c<= 'z' ) || (c>= 'A' && c<= 'Z' )) printf ( "%c is an alphabet." ,c); else printf ( "%c is not an alphabet." ,c); return 0; } |
输出1: Enter a character: * * is not an alphabet 输出2: Enter a character: K K is an alphabet
|