美文网首页C/C++学习交流
初学者玩转C语言要懂的18个算法案例(附源码)

初学者玩转C语言要懂的18个算法案例(附源码)

作者: 工程狮一图 | 来源:发表于2019-03-25 15:16 被阅读2次

下面这些C语言基础算法案例都是经过测试和验证过了的,欢迎各位使用。

本文是该系列的第一篇,都是一些相对初级的算法,很适合刚开始学C语言的同学。

1、C语言打印一条语句

源代码:

/* C Program to print a sentence. */#include<stdio.h>intmain(){printf("C Programming");/* printf() prints the content inside quotation */return0;}

输出:

C Programming

2、C语言打印用户输入的一个整数

源代码:

#include<stdio.h>intmain(){intnum;printf("Enter a integer: ");scanf("%d", &num);/* Storing a integer entered by user in variable num */printf("You entered: %d",num);return0;}

输出:

Enter ainteger:25Youentered:25

3、C语言实现两个整数相加

源代码:

/*C programming source code to add and display the sum of two integers entered by user */#include<stdio.h>intmain( ){intnum1, 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 */return0;}

输出:

Enter twointegers:1211Sum:23

4、C语言实现两个小数相乘

源代码:

/*C program to multiply and display the product of two floating point numbers entered by user. */#include<stdio.h>intmain( ){floatnum1, 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);return0;}

输出:

Entertwonumbers: 2.41.1Product: 2.640000

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者为了入行、转行学习C/C++的伙伴可以私信回复小编“学习”领取全套免费C/C++学习资料、视频

你想成为一个什么样的程序员?

5、C语言查找字符的ASCII值

源代码:

/* Source code to find ASCII value of a character entered by user */#include<stdio.h>intmain(){charc;printf("Enter a character: ");scanf("%c", &c);/* Takes a character from user */printf("ASCII value of %c = %d", c, c);return0;}

输出:

Enteracharacter: GASCIIvalueofG =71

6、C语言根据用户输入的整数做商和余数

源代码:

/* C Program to compute remainder and quotient */#include<stdio.h>intmain(){intdividend, 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);return0;}

输出:

Enter dividend: 25

Enter divisor: 4

Quotient = 6

Remainder = 1

7、C语言获取整型、单精度浮点型、双精度浮点型和字符型的长度

基本语法是:

temp = sizeof(operand);/* Here, tempisa variableoftypeinteger, i.e, sizeof()operatorreturnsintegervalue. */

源代码:

/* This program computes the size of variable using sizeof operator. */#include<stdio.h>intmain(){inta;floatb;doublec;chard;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));return0;}

输出:

Sizeofint:4bytesSizeoffloat:4bytesSizeofdouble:8bytesSizeofchar:1byte

注:可能会由于系统的不同出来的结果也不尽相同。

8、C语言获取关键字long的长度范围

源代码:

#include<stdio.h>intmain(){inta;longintb;/* int is optional. */longlongintc;/* 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));return0;}

输出:

Sizeofint=4bytesSizeoflongint=4bytesSizeoflonglongint=8bytes

9、C语言交换数值

源代码:

#include<stdio.h>intmain(){floata, 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);return0;}

输出:

Entervalueofa:1.20Entervalueofb:2.45After swapping,valueofa=2.45After swapping,valueofb =1.2

10、C语言检查数值是奇数还是偶数

源代码:

/*C program to check whether a number entered by user is even or odd. */#include<stdio.h>intmain(){intnum;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);elseprintf("%d is odd.", num);return0;}

输出1:

Enter anintegeryou wanttocheck:2525isodd.

输出2:

Enter anintegeryou wanttocheck:1212iseven.

也可以用条件运算符解决:

/* C program to check whether an integer is odd or even using conditional operator */#include<stdio.h>intmain(){intnum;printf("Enter an integer you want to check: ");scanf("%d", &num); ((num%2) ==0) ?printf("%d is even.", num) :printf("%d is odd.", num);return0;}

11、C语言检查是元音还是辅音

源代码:

#include<stdio.h>intmain(){charc;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);elseprintf("%c is a consonant.", c);return0;}

输出1:

Enter an alphabet:iiisavowel.

输出2:

Enteranalphabet: GG isaconsonant.

也可以用条件运算符解决

/* C program to check whether a character is vowel or consonant using conditional operator */#include<stdio.h>intmain(){charc;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);return0;}

输出结果和上面的程序相同。

12、C语言实现从三个数值中查找最大值

实现1:

/* C program to find largest number using if statement only */#include<stdio.h>intmain(){floata, 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);return0;}

实现2:

/* C program to find largest number using if...else statement */#include<stdio.h>intmain(){floata, b, c;printf("Enter three numbers: ");scanf("%f %f %f", &a, &b, &c);if(a >= b) {if(a >= c)printf("Largest number = %.2f", a);elseprintf("Largest number = %.2f", c); }else{if(b >= c)printf("Largest number = %.2f", b);elseprintf("Largest number = %.2f", c); }return0;}

实现3:

/* C Program to find largest number using nested if...else statement */#include<stdio.h>intmain(){floata, b, c;printf("Enter three numbers: ");scanf("%f %f %f", &a, &b, &c);if(a >= b && a >= c)printf("Largest number = %.2f", a);elseif(b>=a && b>=c)printf("Largest number = %.2f", b);elseprintf("Largest number = %.2f", c);return0;}

输出结果相同:

Enter threenumbers:12.213.45210.193Largestnumber=13.45

13、C语言解一元二次方程

源代码:

/* 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. */intmain(){floata, 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); }elseif(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); }return0;}

输出1:

Entercoefficientsa,bandc: 2.345.6Rootsare:-0.87+1.30iand-0.87-1.30i

输出2:

Enter coefficientsa,band c:410Roots are:0.00and -0.25

14、C语言检查是否是闰年

源代码:

/* C programtocheck whether ayearisleapyearornotusingifelsestatement. */#include <stdio.h>int main(){ intyear; printf("Enter a year: "); scanf("%d", &year);if(year%4==0) {if(year%100==0) /* Checkingfora centuryyear*/ {if(year%400==0) printf("%d is a leap year.",year);elseprintf("%d is not a leap year.",year); }elseprintf("%d is a leap year.",year); }elseprintf("%d is not a leap year.",year); return0;}

输出1:

Enteryear:20002000isa leapyear.

输出2:

Enteryear:19001900isnota leapyear.

输出3:

Enteryear:20122012isa leapyear.

15、C语言检查一个数是正数、负数还是零

源代码:

#include<stdio.h>intmain(){floatnum;printf("Enter a number: ");scanf("%f", &num);if(num <=0) {if(num ==0)printf("You entered zero.");elseprintf("%.2f is negative.", num); }elseprintf("%.2f is positive.", num);return0;}

也可以使用if-else语句

/* C programming code to check whether a number is negative or positive or zero using nested if...else statement. */#include<stdio.h>intmain(){floatnum;printf("Enter a number: ");scanf("%f", &num);if(num<0)/* Checking whether num is less than 0*/printf("%.2f is negative.", num);elseif(num>0)/* Checking whether num is greater than zero*/printf("%.2f is positive.", num);elseprintf("You entered zero.");return0;}

输出1:

Enter anumber:12.312.30ispositive.

输出2:

Enter anumber:-12.3-12.30isnegative.

输出3:

Enteranumber:0You enteredzero.

16、C语言检查某字符串是不是字母

源代码:

/* C programming code to check whether a character is alphabet or not. */#include<stdio.h>intmain(){charc;printf("Enter a character: ");scanf("%c",&c);if( (c >='a'&& c <='z') || (c >='A'&& c <='Z'))printf("%c is an alphabet.", c);elseprintf("%c is not an alphabet.", c);return0;}

输出1:

Enteracharacter: ** isnotanalphabet

输出2:

Enteracharacter: KK isanalphabet

17、C语言计算自然数的和

源代码:

/* This program is solved using while loop. */#include intmain(){intn,count,sum=0; printf("Enter an integer: "); scanf("%d", &n);count=1; while(count<=n) /* while loop terminatesifcount>n*/ {sum+=count; /*sum=sum+count*/ ++count; } printf("Sum = %d",sum); return0;}

也可以使用for循环语句

/* This program is solve using for loop. */#include intmain(){intn,count,sum=0; printf("Enter an integer: "); scanf("%d", &n); for (count=1;count<=n; ++count) /* for loop terminatesifcount>n*/ {sum+=count; /*sum=sum+count*/ } printf("Sum = %d",sum); return0;}

输出:

Enter aninteger:100Sum=5050

也可以通过if-else语句

/* This program displays error message when user enters negative numberor0anddisplays thesumof natural numbersifuser enters positive number. */#include intmain(){intn,count,sum=0; printf("Enter an integer: "); scanf("%d", &n);if(n<=0) printf("Error!!!!"); else { for(count=1;count<=n; ++count) /* for loop terminatesifcount>n*/ {sum+=count; /*sum=sum+count*/ } printf("Sum = %d",sum); } return0;}

18、C语言计算阶乘

对于任意正数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>intmain(){intn, count;unsignedlonglongintfactorial =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); }return0;}

输出1:

Enter aninteger:-5Error!!! Factorialofnegative number doesn't exist.

输出2:

Enteraninteger:10Factorial =3628800

相关文章

网友评论

    本文标题:初学者玩转C语言要懂的18个算法案例(附源码)

    本文链接:https://www.haomeiwen.com/subject/obtbvqtx.html