下面这些C语言基础算法案例都是经过测试和验证过了的,欢迎各位使用。
本文是该系列的第一篇,都是一些相对初级的算法,很适合刚开始学C语言的同学。
源代码:
/* C Program to print a sentence. */ #include <stdio.h> int main() { printf("C Programming"); /* printf() prints the content inside quotation */ return 0; }
输出:
C Programming
源代码:
#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
源代码:
/*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
源代码:
/*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
源代码:
/* 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
源代码:
/* 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
基本语法是:
temp = sizeof(operand); /* Here, temp is a variable of type integer, i.e, sizeof() operator returns integer value. */
源代码:
/* 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
注:可能会由于系统的不同出来的结果也不尽相同。
源代码:
#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
源代码:
#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
源代码:
/*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.
也可以用条件运算符解决:
/* 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; }
源代码:
#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.
也可以用条件运算符解决
/* 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; }
输出结果和上面的程序相同。
实现1:
/* 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:
/* 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:
/* 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
源代码:
/* 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
源代码:
/* 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.
源代码:
#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语句
/* 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.
源代码:
/* 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
源代码:
/* This program is solved using while loop. */ #include <stdio.h> int main() { int n, count, sum = 0; printf("Enter an integer: "); scanf("%d", &n); count = 1; while(count <= n) /* while loop terminates if count>n */ { sum += count; /* sum=sum+count */ ++count; } printf("Sum = %d", sum); return 0; }
也可以使用for循环语句
/* This program is solve using for loop. */ #include <stdio.h> int main() { int n, count, sum=0; printf("Enter an integer: "); scanf("%d", &n); for (count = 1; count <= n; ++count) /* for loop terminates if count>n */ { sum += count; /* sum=sum+count */ } printf("Sum = %d", sum); return 0; }
输出:
Enter an integer: 100 Sum = 5050
也可以通过if-else语句
/* This program displays error message when user enters negative number or 0 and displays the sum of natural numbers if user enters positive number. */ #include <stdio.h> int main() { int n, count, sum=0; printf("Enter an integer: "); scanf("%d", &n); if (n <= 0) printf("Error!!!!"); else { for(count = 1; count <= n; ++count) /* for loop terminates if count>n */ { sum += count; /* sum=sum+count */ } printf("Sum = %d", sum); } return 0; }
对于任意正数n,阶乘指的是:
factorial = 1*2*3*4....n
如果数值是负数,那么阶乘就不存在。并且我们规定,0的阶乘就是1。
源代码:
/* C program to display factorial of an integer if user enters non-negative integer. */ #include <stdio.h> int main() { int n, count; unsigned long long int factorial = 1; printf("Enter an integer: "); scanf("%d", &n); if (n < 0) printf("Error!!! Factorial of negative number doesn't exist."); else { for (count = 1; count <= n; ++count) /* for loop terminates if count>n */ { factorial *= count; /* factorial=factorial*count */ } printf("Factorial = %lu", factorial); } return 0; }
输出1:
Enter an integer: -5 Error!!! Factorial of negative number doesn't exist.
输出2:
Enter an integer: 10 Factorial = 3628800
先介绍到这里,下一篇将分享更多的C语言基础算法,敬请期待。