搜集了网上C语言入门案例,并适当的做了一些修改和注释。一共65的案例,推荐按Ctrl+F输入关键词快速定位案例。想要原代码的,拉到最低,点击链接下载。
例1. 使用 printf() 输出 “Hello, World!”。

#include <stdio.h>
#include <stdlib.h>             //包含system()函数//
int main()
{printf("Hello, World!\n");system("pause");             //仿真时,按任意键推出应用程序,方便仿真查看结果//return 0;
}

仿真结果:

例2. 使用 printf() 与 %d 格式化输出整数。

#include <stdio.h>
#include <stdlib.h>             //包含system()函数//
int main()
{int number;printf("输入一个整数: ");      scanf("%d", &number);        //通过键盘给程序中的变量赋值//printf("你输入的整数是: %d\n", number);system("pause");             //仿真时,按任意键推出应用程序,方便仿真查看结果//return 0;
}

仿真结果:
例3. 使用 printf() 与 %c 格式化输出一个字符。

#include <stdio.h>
#include <stdlib.h>             //包含system()函数//
int main()
{char c;                      // 声明一个字符串变量C//  printf("输入一个字符(仅限1个字母): ");      scanf("%c", &c);             //通过键盘给程序中的变量赋值//printf("输入的字符为 %c\n", c); system("pause");             //仿真时,按任意键推出应用程序,方便仿真查看结果//return 0;
}

仿真结果:

例4. 使用 printf() 与 %f 输出浮点数。

#include <stdio.h>
#include <stdlib.h>
int main()
{float f;                     // 声明浮点数变量printf("输入一个浮点数: ");      scanf("%f", &f);             //通过键盘给程序中的变量赋值//printf("输入的浮点数为 %f\n", f); system("pause");             //仿真时,按任意键推出应用程序,方便仿真查看结果//return 0;
}

仿真结果:

例5. 使用 printf() 与 %le 输出双精度数。

#include <stdio.h>
#include <stdlib.h>
int main()
{double d;                     // 声明双精度变量printf("输入一个双精度数: ");      scanf("%le", &d);             //通过键盘给程序中的变量赋值//printf("输入的双精度数为 %le\n", d); system("pause");              //仿真时,按任意键推出应用程序,方便仿真查看结果//return 0;
}

仿真结果:

例6. 使用 scanf() 来接收输入, printf() 与 %d 格式化输出整数,实现两数相加。

#include <stdio.h>
#include <stdlib.h>
int main()
{int firstNumber, secondNumber, sumOfTwoNumbers;printf("输入两个数(以空格分割): ");scanf("%d %d", &firstNumber, &secondNumber);    // 通过 scanf() 函数接收用户输入的两个整数sumOfTwoNumbers = firstNumber + secondNumber;printf("%d + %d = %d\n", firstNumber, secondNumber, sumOfTwoNumbers);system("pause");return 0;
}

仿真结果:

例7. 输入两个浮点数,计算乘积。

#include <stdio.h>
#include <stdlib.h>
int main()
{double firstNumber, secondNumber, product;printf("输入两个浮点数: ");scanf("%lf %lf", &firstNumber, &secondNumber);  product = firstNumber * secondNumber;  printf("%lf * %lf = %.2lf\n", firstNumber, secondNumber,product);    // 输出结果, %.2lf 保留两个小数点system("pause");return 0;
}

仿真结果:

例8. 字符转 ASCII 码

#include <stdio.h>
#include <stdlib.h>
int main()
{char c;printf("输入一个字符: ");scanf("%c", &c);  printf("%c 的 ASCII 为 %d\n", c, c);system("pause");return 0;
}

仿真结果:

附ASCII表


例9. 两数相除,如果有余数,输出余数。

#include <stdio.h>
#include <stdlib.h>
int main()
{ int dividend, divisor, quotient, remainder;//4个变量分别是被除数、除数、商和余数//printf("输入被除数: ");scanf("%d", &dividend);printf("输入除数: ");scanf("%d", &divisor);quotient = dividend / divisor;             //运算符/用来计算商//remainder = dividend % divisor;            //运算符%用来计算余数//printf("商 = %d\n", quotient);printf("余数 = %d\n", remainder);system("pause");return 0;
}

仿真结果:

例10.1 输入两个数,比较大小

#include <stdio.h>
#include <stdlib.h>
int main()
{double a, b;printf("输入第一个数:");scanf("%le",&a);printf("输入第二个数:");scanf("%le",&b);if(a > b)printf("%le 大于 %le\n",a,b);elseprintf("%le 小于等于 %le\n",a,b);system("pause");return 0;
}

仿真结果:

例10.2 比较三个数大小

#include <stdio.h>
#include <stdlib.h>
int main()
{int a, b, c;printf("输入第一个整数:");scanf("%d",&a);printf("输入第二个整数:");scanf("%d",&b);printf("输入第三个整数:");scanf("%d",&c);if ( a > b && a > c )printf("%d 最大\n", a);else if ( b > a && b > c )printf("%d 最大\n", b);else if ( c > a && c > b )printf("%d 最大\n", c);else   printf("有两个或三个数值相等\n");system("pause");return 0;
}

仿真结果:

例11. 计算 int, float, double 和 char 字节大小

#include <stdio.h>
#include <stdlib.h>
int main()
{int integerType;   //整数类型//float floatType;   //浮点型//double doubleType; //双精度型//char charType;     //字符型//printf("Size of int: %ld bytes\n",sizeof(integerType));  //sizeof()函数用于计算变量的大小//printf("Size of float: %ld bytes\n",sizeof(floatType));printf("Size of double: %ld bytes\n",sizeof(doubleType));printf("Size of char: %ld byte\n",sizeof(charType));system("pause");return 0;
}

仿真结果:

例12. 交换两个数的值。

#include <stdio.h>
#include <stdlib.h>
int main()
{     printf("第一种方法,采用临时变量\n");double firstNumber, secondNumber, temporaryVariable;printf("输入第一个数字: ");scanf("%lf", &firstNumber);printf("输入第二个数字: ");scanf("%lf",&secondNumber);temporaryVariable = firstNumber;firstNumber = secondNumber;secondNumber = temporaryVariable;printf("交换后, firstNumber = %.2lf\n", firstNumber);printf("交换后, secondNumber = %.2lf\n", secondNumber);system("pause");printf("第二种方法,不采用临时变量\n");printf("交换前 - \n第一个数字 = %lf, 第二个数字 = %lf \n", firstNumber, secondNumber);firstNumber = firstNumber + secondNumber;   // firstNumber的变量为两数之和,secondNumber未改变secondNumber = firstNumber - secondNumber;    firstNumber = firstNumber - secondNumber;   printf("交换后 - \n第一个数字 = %lf, 第二个数字 = %lf \n", firstNumber, secondNumber);system("pause");return 0;
}

仿真结果:

例13. 判断奇数还是偶数。

#include <stdio.h>
#include <stdlib.h>
int main()
{int number;printf("请输入一个整数: ");scanf("%d", &number);if(number % 2 == 0)printf("%d 是偶数\n", number);elseprintf("%d 是奇数\n", number); system("pause");return 0;
}

仿真结果:

例14. 循环区间范围内的奇数/偶数

#include <stdio.h>
#include <stdlib.h>
int main()
{int i;printf("100以内的偶数:");for(i = 1; i <= 100; i++) {if(i%2 == 0)printf("%2d  ", i); //%2d表示将数字按宽度为2,采用右对齐方式输出//}printf("\n100以内的奇数:");for(i = 1; i <= 100; i++) {if(i%2 != 0)printf("%2d  ", i);}printf("\n");system("pause");return 0;
}

仿真结果:

例15. 判断元音辅音。
知识点:英语有26个字母,元音只包括 a、e、i、o、u 这五个字母,其余的都为辅音。y是半元音、半辅音字母,但在英语中都把他当作辅音。

#include <stdio.h>
#include <stdlib.h>
int main()
{char c;int isLowercaseVowel, isUppercaseVowel;printf("输入一个字母: ");scanf("%c",&c);isLowercaseVowel = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');//小写字母,值为1时说明是元音//isUppercaseVowel = (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');//大写字母,值为1时说明是元音//if (isLowercaseVowel || isUppercaseVowel)printf("%c 是元音\n", c);elseprintf("%c 是辅音\n", c);system("pause");return 0;
}

仿真结果:

例16. 判断三个数中的最大数。

#include <stdio.h>
#include <stdlib.h>
int main()
{double n1, n2, n3;printf("请输入三个数,以空格分隔: ");scanf("%lf %lf %lf", &n1, &n2, &n3);if( n1>=n2 && n1>=n3 )printf("%.2f 是最大数\n", n1); if( n2>=n1 && n2>=n3 )printf("%.2f 是最大数\n", n2);if( n3>=n1 && n3>=n2 )printf("%.2f 是最大数\n", n3);system("pause");return 0;
}

仿真结果:

例17. 求一元二次方程:ax2+bx+c=0 的根。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{float a,b,c,x1,x2,d;printf("求公式ax^2+bx+c=0的根\n");printf("输入方程的第一个系数:a=");scanf("%f",&a);printf("输入方程的第二个系数:b=");scanf("%f",&b);printf("输入方程的第三个系数:c=");scanf("%f",&c);if(a!=0){if(b*b-4*a*c>=0){d=sqrt(b*b-4*a*c);x1=(-b+d)/(2*a);x2=(-b-d)/(2*a);if(x1<x2) printf("%0.2f %0.2f\n",x2,x1); elseprintf("%0.2f %0.2f\n",x1,x2);}elseprintf("输入值有问题!\n");}system("pause");return 0;
}

仿真结果:

例18. 判断闰年。

#include <stdio.h>
#include <stdlib.h>
int main()
{int year;printf("输入年份: ");scanf("%d",&year);if(year%4 == 0){if( year%100 == 0)  {  if ( year%400 == 0)              // 能被4,100,400整除,则是闰年//printf("%d 是闰年\n", year);elseprintf("%d 不是闰年\n", year);}elseprintf("%d 是闰年\n", year );    //能被4整除,不能被100整除,是闰年//}elseprintf("%d 不是闰年\n", year);     system("pause");  return 0;
}

仿真结果:

例19. 判断正数、负数。

#include <stdio.h>
#include <stdlib.h>
int main()
{double number; printf("输入一个数字: ");scanf("%lf", &number); if (number <= 0.0){if (number == 0.0)printf("你输入的是 0\n");elseprintf("你输入的是负数\n");}elseprintf("你输入的是正数\n");system("pause");return 0;
}

仿真结果:

例20. 判断字母。

#include <stdio.h>
#include <stdlib.h>
int main()
{char c;printf("输入一个字符: ");scanf("%c",&c);if( (c>='a' && c<='z') || (c>='A' && c<='Z'))   //a~z的ASCII区间是97~122,A~Z的ASCII区间是65~90//printf("是字母\n");elseprintf("不是字母\n");system("pause");return 0;
}

仿真结果:

例21. 计算自然数的和。

#include <stdio.h>
#include <stdlib.h>
int addNumbers(int n);    //定义一个子函数//
int main()
{int n, i, sum = 0;printf("第一种方法,使用for\n"); printf("输入一个正整数,确定从1加到这个正整数: ");scanf("%d",&n);for(i=1; i <= n; ++i){sum += i;   // sum = sum+i;}printf("Sum = %d\n",sum);sum=0;   //sum清零//printf("第二种方法,使用while\n"); printf("输入一个正整数,确定从1加到这个正整数: ");scanf("%d",&n);i = 1;while ( i <=n ){sum += i;++i;}printf("Sum = %d\n",sum);printf("第三种方法,使用递归\n"); printf("输入一个正整数,确定从1加到这个正整数: ");scanf("%d", &n);printf("Sum = %d\n",addNumbers(n));system("pause");return 0;
}
int addNumbers(int m)
{if(m != 0)return m + addNumbers(m-1);elsereturn m;
}

仿真结果:

例22. 输出九九乘法口诀表。

#include <stdio.h>
#include <stdlib.h>
int main()
{  int i = 0;     int j = 0;   for(i=1;i<=9;i++){  for(j=1;j<=i;j++){  printf("%dx%d=%d\t",j,i,i*j);  //\t表示水平制表(HT) (跳到下一个TAB位置)//}     printf("\n");     }
system("pause");
}

仿真结果:

例23. 斐波那契数列。
知识点:斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89… 这个数列从第3项开始,每一项都等于前两项之和。

#include <stdio.h>
#include <stdlib.h>
int main()
{int i, n, t1 = 0, t2 = 1, nextTerm;printf("方法一,使用for\n");printf("从1开始,输出几项: ");scanf("%d", &n);printf("斐波那契数列: ");for (i = 1; i <= n; ++i){printf("%d, ", t1);nextTerm = t1 + t2;t1 = t2;t2 = nextTerm;}printf("\n");system("pause");printf("方法二,使用while\n");t1 = 0, t2 = 1, nextTerm=0;printf("输入,最大值不超过: ");scanf("%d", &n);printf("斐波那契数列: %d, %d, ", t1, t2);nextTerm = t1 + t2;while(nextTerm <= n){printf("%d, ",nextTerm);t1 = t2;t2 = nextTerm;nextTerm = t1 + t2;}printf("\n");system("pause");return 0;
}

仿真结果:

例24. 两数的最大公约数。

#include <stdio.h>
#include <stdlib.h>
int hcf(int n1, int n2);   //为方案四服务//
int main()
{int n1, n2, i, gcd;printf("方案一,使用for和if\n");printf("输入两个正整数,以空格分隔: ");scanf("%d %d", &n1, &n2);for(i=1; i <= n1 && i <= n2; ++i){if(n1%i==0 && n2%i==0)gcd = i;}printf("%d 和 %d 的最大公约数是 %d\n", n1, n2, gcd);printf("方案二,使用while和if\n");printf("输入两个数,以空格分隔: ");scanf("%d %d",&n1,&n2);while(n1!=n2){if(n1 > n2)n1 -= n2;   //-=表示把左边的数减去右边的数的差赋值给左边的数//elsen2 -= n1;}printf("最大公约数是 %d\n",n1);printf("方案三,包含正数和负数时\n");printf("输入两个数,以空格分隔: ");scanf("%d %d",&n1,&n2);n1 = ( n1 > 0) ? n1 : -n1;   //当n1>0时,n1=n1否则n1=-n1n2 = ( n2 > 0) ? n2 : -n2;   //当n2>0时,n2=n2否则n2=-n2while(n1!=n2){if(n1 > n2)n1 -= n2;elsen2 -= n1;}printf("最大公约数是 %d\n",n1);printf("方案四,使用递归方法\n");printf("输入两个正整数: ");scanf("%d %d", &n1, &n2);printf("%d 和 %d 的最大公约数为 %d\n", n1, n2, hcf(n1,n2));system("pause");return 0;
}
int hcf(int n1, int n2)
{if (n2 != 0)return hcf(n2, n1%n2);else return n1;
}

仿真结果:

例25. 两数最小公倍数。

#include <stdio.h>
#include <stdlib.h>
int main()
{printf("方案一,使用while和if\n");int n1, n2, minMultiple;printf("输入两个正整数:");scanf("%d %d", &n1, &n2);minMultiple = (n1>n2) ? n1 : n2;while(1){if( minMultiple%n1==0 && minMultiple%n2==0 ){printf("%d 和 %d 的最小公倍数为 %d\n", n1, n2,minMultiple);break;}++minMultiple;}printf("方案二,通过最大公约数计算\n");int i,gcd,lcm;printf("输入两个正整数: ");scanf("%d %d",&n1,&n2);for(i=1; i <= n1 && i <= n2; ++i){if(n1%i==0 && n2%i==0)gcd = i;}lcm = (n1*n2)/gcd;printf("%d 和 %d 的最小公倍数为 %d\n", n1, n2, lcm);system("pause");return 0;
}

仿真结果:

例26. 阶乘。
知识点:一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
n!=1×2×3×…×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

#include <stdio.h>
#include <stdlib.h>
long int multiplyNumbers(int n);  //为方案二服务//
int main()
{int n, i;unsigned long long factorial = 1;printf("方案一:使用for\n");printf("输入一个整数: ");scanf("%d",&n);if (n < 0)printf("Error! 负数没有阶乘\n");else{for(i=1; i<=n; ++i){factorial *= i;            }printf("%d! = %llu\n", n, factorial);}system("pause");printf("方案二,使用递归\n");printf("输入一个整数: ");scanf("%d", &n);printf("%d! = %ld\n", n, multiplyNumbers(n));system("pause");return 0;
}
long int multiplyNumbers(int n)
{if (n >= 1)return n*multiplyNumbers(n-1);elsereturn 1;
}

仿真结果:

例27. 循环输出26个字母。

#include <stdio.h>
#include <stdlib.h>
int main()
{char c;for(c = 'A'; c <= 'Z'; ++c)printf("%c ", c);printf("\n");system("pause");printf("考虑大小写方案\n");printf("输入 u 显示大写字母,输入 l 显示小写字母: ");scanf("%c", &c);if(c== 'U' || c== 'u'){for(c = 'A'; c <= 'Z'; ++c)printf("%c ", c);}else if (c == 'L' || c == 'l'){for(c = 'a'; c <= 'z'; ++c)printf("%c ", c);}elseprintf("Error! 输入非法字符");printf("\n");system("pause");return 0;
}

仿真结果:

例28. 判断数字为几位数。

#include <stdio.h>
#include <stdlib.h>
int main()
{long long n;int count = 0;printf("输入一个整数: ");scanf("%lld", &n);       //lld是long long整型//while(n != 0){n /= 10;++count;}printf("数字是 %d 位数\n", count);system("pause");
}

仿真结果:

例29. 计算一个数的 n 次方。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int power(int n1, int n2);
int main()
{int base1, exponent1;long long result1 = 1;printf("方案一,使用while\n"); printf("基数: ");scanf("%d", &base1);printf("指数: ");scanf("%d", &exponent1);while (exponent1 != 0){result1 *= base1;--exponent1;}printf("结果:%lld\n", result1);printf("方案二,使用pow()函数\n");double base2, exponent2, result2;printf("基数: ");scanf("%lf", &base2);printf("指数: ");scanf("%lf", &exponent2);result2 = pow(base2, exponent2);printf("%.1lf^%.1lf = %.2lf\n", base2, exponent2, result2);system("pause");printf("方案三,使用递归\n");int base3, powerRaised3, result3; printf("基数: ");scanf("%d",&base3);printf("指数(正整数): ");scanf("%d",&powerRaised3); result3 = power(base3, powerRaised3);printf("%d^%d = %d\n", base3, powerRaised3, result3);system("pause");return 0;
}
int power(int base, int powerRaised)
{if (powerRaised != 0)return (base*power(base, powerRaised-1));elsereturn 1;
}

仿真结果:

例30. 判断回文数。
知识点:设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。

#include <stdio.h>
#include <stdlib.h>
int main()
{int n, reversedInteger = 0, remainder, originalInteger;printf("输入一个整数:");scanf("%d", &n);originalInteger = n;while( n!=0 )   //while函数实现翻转功能//{remainder = n%10;reversedInteger = reversedInteger*10 + remainder;n /= 10;}if (originalInteger == reversedInteger)printf("%d 是回文数\n", originalInteger);elseprintf("%d 不是回文数\n", originalInteger);system("pause");return 0;
}

仿真结果:

例31. 判断素数。
知识点:质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。

#include <stdio.h>
#include <stdlib.h>
int checkPrimeNumber(int n);
int main()
{int n, i, flag = 0;printf("判断一个正整数是否为素数\n");printf("输入一个正整数: ");scanf("%d",&n);for(i=2; i<=n/2; ++i){if(n%i==0){flag=1;break;}}if (flag==0)printf("%d 是素数\n",n);elseprintf("%d 不是素数\n",n);printf("判断两个数之间的素数\n");int low, high;flag=0;printf("输入两个整数: ");scanf("%d %d", &low, &high);printf("%d 与 %d 之间的素数为: ", low, high);while (low < high){flag = 0;for(i = 2; i <= low/2; ++i){if(low % i == 0){flag = 1;break;}}if (flag == 0)printf("%d ", low);++low;}printf("\n");printf("使用函数判断两数间的素数\n");int n1,n2;flag=0;printf("输入两个正整数: ");scanf("%d %d", &n1, &n2);printf("%d 和 %d 间的素数为: ", n1, n2);for(i=n1+1; i<n2; ++i){flag = checkPrimeNumber(i);if(flag == 1)printf("%d ",i);}if (i<=n1+1)printf("无");printf("\n");system("pause");return 0;
}
int checkPrimeNumber(int n)
{int j, flag = 1;for(j=2; j <= n/2; ++j){if (n%j == 0){flag =0;break;}}return flag;
}

仿真结果:

例32. 判断Armstrong数(阿姆斯壮数)。
Armstrong 数,就是n位数的各位数的n次方之和等于该数。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int checkPrimeNumber(int n);
int checkArmstrongNumber(int n);
int main()
{printf("判断Armstrong数\n");int number, originalNumber;double remainder;double result = 0;printf("输入四位数: ");scanf("%d", &number);originalNumber = number;while (originalNumber != 0){remainder = originalNumber%10;result += remainder*remainder*remainder*remainder;originalNumber /= 10;}if(result == number)printf("%d 是 Armstrong 数\n",number);elseprintf("%d 不是 Armstrong 数\n",number);system("pause"); printf("寻找两数之间的Armstrong数\n");int low, high, i, temp1, temp2, n = 0; result = 0;printf("输入两个整数: ");scanf("%d %d", &low, &high);printf("%d 和 %d 之间的 Armstrong 数为: ", low, high);for(i = low + 1; i < high; ++i){temp2 = i;temp1 = i;// 计算while (temp1 != 0)       //先计算是几位数//{temp1 /= 10;++n;}       while (temp2 != 0)      //计算Armstrong 数//{remainder = temp2 % 10;result += pow(remainder, n);temp2 /= 10;}if (result == i) {printf("%d ", i);}n = 0;result = 0;}printf("\n");system("pause");printf("使用函数判断Armstrong 数\n");int flag;printf("输入正整数: ");scanf("%d", &n);flag = checkPrimeNumber(n);if (flag == 1)printf("%d 是素数。\n", n);elseprintf("%d 不是素数\n", n);flag = checkArmstrongNumber(n);if (flag == 1)printf("%d 是 Armstrong 数\n", n);elseprintf("%d 不是 Armstrong 数\n",n);system("pause");return 0;
}
int checkPrimeNumber(int n)
{int i,flag = 1;for(i=2; i<=n/2; ++i){if(n%i == 0){flag = 0;break;}}return flag;
}
int checkArmstrongNumber(int number)
{int originalNumber, n = 0, flag;double remainder, result=0;originalNumber = number;while (originalNumber != 0){originalNumber /= 10;++n;}originalNumber = number;while (originalNumber != 0){remainder = originalNumber%10;result += pow(remainder, n);originalNumber /= 10;}if(result == number)flag = 1;elseflag = 0; return flag;
}

仿真结果:

例33. 求一个数的因数。
知识点:假如a*b=c(a、b、c都是整数),那么我们称a和b就是c的因数。

#include <stdio.h>
#include <stdlib.h>
int main()
{int number, i;printf("输入一个整数: ");scanf("%d",&number); printf("%d 的因数有: ", number);for(i=1; i <= number; ++i){if (number%i == 0){printf("%d ",i);}}printf("\n");system("pause");return 0;
}

仿真结果:

例34. 创建三角形图案。

#include <stdio.h>
#include <stdlib.h>
int main()
{int i, j, rows;printf("使用*号创建三角形\n");printf("行数: ");scanf("%d",&rows);for(i=1; i<=rows; ++i){for(j=1; j<=i; ++j){printf("* ");}printf("\n");}printf("使用数字创建三角形\n");printf("行数: ");scanf("%d",&rows);for(i=1; i<=rows; ++i){for(j=1; j<=i; ++j){printf("%d ",j);}printf("\n");}printf("使用字母创建三角形\n");char input, alphabet = 'A';printf("输入大写字母:");scanf("%s",&input);for(i=1; i <= (input-'A'+1); ++i){for(j=1;j<=i;++j){printf("%c", alphabet);}++alphabet;printf("\n");}printf("使用*号创建倒三角形\n"); printf("行数: ");scanf("%d",&rows);for(i=rows; i>=1; --i){for(j=1; j<=i; ++j){printf("* ");}printf("\n");}printf("使用数字创建倒三角形\n");printf("行数: ");scanf("%d",&rows);for(i=rows; i>=1; --i){for(j=1; j<=i; ++j){printf("%d ",j);}printf("\n");}printf("使用*号创建金字塔\n");int  space, k=0;printf("Enter number of rows: ");scanf("%d",&rows);for(i=1; i<=rows; ++i, k=0){for(space=1; space<=rows-i; ++space){printf("  ");}while(k != 2*i-1){printf("* ");++k;}printf("\n");}printf("使用数字创建金字塔\n");int count = 0, count1 = 0;k=0;printf("行数: ");scanf("%d",&rows);for(i=1; i<=rows; ++i){for(space=1; space <= rows-i; ++space){printf("  ");++count;}while(k != 2*i-1){if (count <= rows-1){printf("%d ", i+k);++count;}else{++count1;printf("%d ", (i+k-2*count1));}++k;}count1 = count = k = 0;printf("\n");}printf("使用*号创建倒金字塔\n");printf("行数: ");scanf("%d",&rows);for(i=rows; i>=1; --i){for(space=0; space < rows-i; ++space)printf("  ");for(j=i; j <= 2*i-1; ++j)printf("* ");for(j=0; j < i-1; ++j)printf("* ");printf("\n");}printf("创建杨辉三角\n");int coef = 1; printf("行数: ");scanf("%d",&rows);for(i=0; i<rows; i++){for(space=1; space <= rows-i; space++)printf("  ");for(j=0; j <= i; j++){if (j==0 || i==0)coef = 1;elsecoef = coef*(i-j+1)/j;printf("%4d", coef);}printf("\n");}printf("弗洛伊德三角形\n");int l,N; printf("行数: ");scanf("%d",&N);for(i=1,j=1;i<=N;i++) { for(l=1;l<=i;l++,j++) printf("%5d",j); printf("\n"); }system("pause");return 0;
}

仿真结果:


例35. 表格形式输出数据。

#include <stdio.h>
#include <stdlib.h>
int main()
{printf("将 1~100 的数据以 10x10 矩阵格式输出\n");int i, j, count; for(i = 1; i <= 10; i++) {for(j = i; j <=100; j += 10 )printf(" %3d", j);printf("\n");}system("pause");printf("等差数列输出 10x10 矩阵格式\n");int start, end;start = 2, end = 10;for(i = start; i <= end; i++) {count = i;for(j = 1; j <= 10; j++) {printf(" %3d", count*j);}printf("\n");}system("pause");printf("乘法格式运算\n");int n = 3;j = 1;for(i = n; i <= (n*10); i+=n) {printf("%3d  x %2d  =  %3d\n", n, j, i);j++;}system("pause");return 0;
}

仿真结果:

36. 实现简单的计算器。

# include <stdio.h>
# include <stdlib.h>
int main()
{char operate;double firstNumber,secondNumber;printf("输入操作符 (+, -, *, /): ");scanf("%c", &operate);printf("输入两个数字: ");scanf("%lf %lf",&firstNumber, &secondNumber);switch(operate)   //switch case函数//{case '+':printf("%.1lf + %.1lf = %.1lf",firstNumber, secondNumber, firstNumber + secondNumber);break;case '-':printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber - secondNumber);break;case '*':printf("%.1lf * %.1lf = %.1lf",firstNumber, secondNumber, firstNumber * secondNumber);break;case '/':printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber / secondNumber);break;default:printf("Error! operator is not correct");}printf("\n");system("pause");return 0;
}

仿真结果:

例37. 计算一个数是否可为两个素数之和。

#include <stdio.h>
#include <stdlib.h>
int checkPrime(int n);
int main()
{int n, i, flag = 0;printf("输入正整数: ");scanf("%d", &n);for(i = 2; i <= n/2; ++i){if (checkPrime(i) == 1)       {if (checkPrime(n-i) == 1){printf("%d = %d + %d", n, i, n - i);flag = 1;}}}if (flag == 0)printf("%d 不能分解为两个素数。", n);printf("\n");system("pause");return 0;
}
int checkPrime(int n)  //判断一个数是否为素数//
{int i, isPrime = 1;for(i = 2; i <= n/2; ++i){if(n % i == 0){isPrime = 0;break;}  }return isPrime;
}

仿真结果:

例38. 二进制与十进制相互转换。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int convertBinaryToDecimal(long long n1);
long long convertDecimalToBinary(int n2);
int main()
{printf("先进行二进制转十进制\n");long long n1;int n2;printf("输入一个二进制数: ");scanf("%lld", &n1);printf("二进制数 %lld 转换为十进制为 %d\n", n1, convertBinaryToDecimal(n1));system("pause");printf("下面进行十进制转二进制\n");printf("输入一个十进制数: ");scanf("%d", &n2);printf("十进制数 %d 转换为二进制位 %lld\n", n2, convertDecimalToBinary(n2));system("pause");return 0;
}
int convertBinaryToDecimal(long long n1)
{int decimalNumber1 = 0, remainder1;double i1=0;while (n1!=0){remainder1 = n1%10;n1 /= 10;decimalNumber1 += remainder1*pow(2,i1);++i1;}return decimalNumber1;
}
long long convertDecimalToBinary(int n2)
{long long binaryNumber2 = 0;int remainder2, i2 = 1, step = 1;  while (n2!=0){remainder2 = n2%2;printf("Step %d: %d/2, 余数 = %d, 商 = %d\n", step++, n2, remainder2, n2/2);n2 /= 2;binaryNumber2 += remainder2*i2;i2 *= 10;}return binaryNumber2;
}

仿真结果:

例39. 字符串翻转。

#include <stdio.h>
#include <stdlib.h>
void reverseSentence();
int main()
{printf("输入一个字符串: \n");reverseSentence();printf("\n");system("pause");return 0;
}
void reverseSentence()
{char c;scanf("%c", &c);if( c != '\n'){reverseSentence();printf("%c",c);}
}

仿真结果:

例40. 计算数组元素平均值。

#include <stdio.h>
#include <stdlib.h>
int main()
{printf("计算1,2,3,4,5,6,7,8,9,0十个数字的平均值\n");int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};int loop;float sum, avg;sum = avg = 0.0;for(loop = 0; loop < 10; loop++) {sum = sum + array[loop];}avg = (float)sum / loop;printf("平均值为 %.2f\n", avg);   system("pause");printf("接下来设计用户自定义输入数字取平均值\n");int n, i;float num[100], average;sum = 0.0;printf("输入元素个数: ");scanf("%d", &n);while (n > 100 || n <= 0){printf("Error! 数字需要在1 到 100 之间。\n");printf("再次输入: ");scanf("%d", &n);}for(i = 0; i < n; ++i){printf("%d. 输入数字: ", i+1);scanf("%f", &num[i]);sum += num[i];}average = sum / n;printf("平均值 = %.2f\n", average);system("pause");return 0;
}

仿真结果:

例41. 输出数组。

#include <stdio.h>
#include <stdlib.h>
int main()
{printf("使用 for 循环正向输出数组\n");int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};int loop; for(loop = 0; loop < 10; loop++)printf("%d ", array[loop]);printf("\n使用 for 循环逆向输出数组\n");for(loop = 9; loop >= 0; loop--)printf("%d ", array[loop]);printf("\n");system("pause"); return 0;
}

仿真结果:

例42. 计算数组元素之和。

#include <stdio.h>
#include <stdlib.h>
int main() {int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};int sum, loop;sum = 0;for(loop = 9; loop >= 0; loop--) {sum = sum + array[loop];      }printf("元素和为:%d\n", sum);   system("pause");return 0;
}

仿真结果:

例43. 查找数组中最大的元素值。

#include <stdio.h>
#include <stdlib.h>
int main() {int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};int loop, largest;largest = array[0];for(loop = 1; loop < 10; loop++) {if( largest < array[loop] ) largest = array[loop];}printf("最大元素为 %d\n", largest);   printf("接下来,进行用户自定义输入数组找最大值\n");system("pause");int i, n;float arr[100];printf("输入元素个数(0~100): ");scanf("%d", &n);for(i = 0; i < n; ++i){printf("输入数字 %d: ", i+1);scanf("%f", &arr[i]);}for(i = 1; i < n; ++i){ if(arr[0] < arr[i])arr[0] = arr[i];}printf("最大元素为 = %.2f\n", arr[0]);system("pause");return 0;
}

仿真结果:

例44. 数组拆分与合并。

#include <stdio.h>
#include <stdlib.h>
int main()
{printf("将一个数组拆分为两个数组,一个为奇数数组,一个为偶数数组。\n");printf("被拆分数组为:0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n");int array[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int even[10], odd[10];int loop, e, d;e = d = 0;for(loop = 0; loop < 10; loop++) {if(array[loop]%2 == 0) {even[e] = array[loop];e++;}else {odd[d] = array[loop];d++;}}printf("原始数组 -> ");for(loop = 0; loop < 10; loop++)printf(" %d", array[loop]);printf("\n偶数 -> ");for(loop = 0; loop < e; loop++)printf(" %d", even[loop]);   printf("\n奇数 -> ");for(loop = 0; loop < d; loop++)printf(" %d", odd[loop]);printf("\n接下来,将奇数数组与偶数数组合并为一个数组:\n");system("pause");int emptyarray[10];int index, e_len, o_len;e_len = o_len = 5;index = 0;for(loop = 0; loop < e_len; loop++) {array[index] = even[loop];index++;}for(loop = 0; loop < o_len; loop++) {array[index] = odd[loop];index++;}printf("偶数 -> ");for(loop = 0; loop < e_len; loop++)printf(" %d", even[loop]);printf("\n奇数  -> ");for(loop = 0; loop < o_len; loop++)printf(" %d", odd[loop]);printf("\n合并后 -> ");for(loop = 0; loop < 10; loop++)printf(" %d", array[loop]);system("pause");return 0;
}

仿真结果:
例45. 数组拷贝。

#include <stdio.h>
#include <stdlib.h>
int main()
{printf("将一个数组复制到另一个数组\n");printf("原数组:1,2,3,4,5,6,7,8,9,0\n");system("pause");int original[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};int copied[10];int loop;for(loop = 0; loop < 10; loop++) {copied[loop] = original[loop];}printf("元素数组 -> 拷贝后的数组 \n");for(loop = 0; loop < 10; loop++) {printf("   %2d        %2d\n", original[loop], copied[loop]);}system("pause");   return 0;
}

仿真结果:

例46. 计算标准偏差。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
float calculateSD(float data[]);
int main()
{int i;float data[10];printf("输入10个元素: ");for(i=0; i < 10; ++i)scanf("%f", &data[i]);printf("标准偏差 = %.6f\n", calculateSD(data));system("pause");return 0;
}
float calculateSD(float data[])
{float sum = 0.0, mean, standardDeviation = 0.0;int i;for(i=0; i<10; ++i){sum += data[i];}mean = sum/10;for(i=0; i<10; ++i)standardDeviation += pow(data[i] - mean, 2);return sqrt(standardDeviation/10);
}

仿真结果:

例47. 矩阵相加。

#include <stdio.h>
#include <stdlib.h>
int main()
{int r, c, a[100][100], b[100][100], sum[100][100], i, j;printf("输入行数 ( 1 ~ 100): ");scanf("%d", &r);printf("输入列数 ( 1 ~ 100): ");scanf("%d", &c);printf("输入第一维数组的元素:\n");for(i=0; i<r; ++i)       //第i行//for(j=0; j<c; ++j)   //第j列//{printf("输入元素 a%d%d: ",i+1,j+1);scanf("%d",&a[i][j]);}printf("\n第一维数组为: \n\n");for(i=0;i<r;++i)for(j=0;j<c;++j){printf("%d   ",a[i][j]);if(j==c-1){printf("\n\n");}}printf("输入第二维数组的元素:\n");for(i=0; i<r; ++i)for(j=0; j<c; ++j){printf("输入元素 a%d%d: ",i+1, j+1);scanf("%d", &b[i][j]);}printf("\n第二维数组为: \n\n");for(i=0;i<r;++i)for(j=0;j<c;++j){printf("%d   ",b[i][j]);if(j==c-1){printf("\n\n");}}for(i=0;i<r;++i)for(j=0;j<c;++j){sum[i][j]=a[i][j]+b[i][j];}printf("二维数组相加结果: \n\n");for(i=0;i<r;++i)for(j=0;j<c;++j){printf("%d   ",sum[i][j]);if(j==c-1){printf("\n\n");}}system("pause");return 0;
}

仿真结果:

例48. 矩阵相乘。

#include <stdio.h>
#include <stdlib.h>
int main()
{struct Matrixs   //定义一个结构体//{int elements[100][100];int row;int col;}matrixA, matrixB, matrixC;int m, k, n;printf("请输入矩阵A行数和列数:");scanf("%d %d", &matrixA.row, &matrixA.col);matrixB.row = matrixA.col;     //矩阵A的列数等于矩阵B的行数//printf("请输入矩阵B列数(矩阵B行数等于矩阵A的列数):");scanf("%d", &matrixB.col);printf("\n输入矩阵A:\n");for (m = 0; m < matrixA.row; ++m)   //矩阵A行数//for (k = 0; k < matrixA.col; ++k)  //矩阵A列数//{printf("请输入元素A(%d,%d):", m+1, k+1);scanf("%d", &matrixA.elements[m][k]);}printf("\n输入矩阵B:\n");for (k = 0; k < matrixA.col; ++k)   //矩阵B行数//for (n = 0; n < matrixB.col; ++n)  //矩阵B列数//{printf("请输入元素B(%d,%d):", k+1, n+1);scanf("%d", &matrixB.elements[k][n]);}for (m = 0; m < matrixA.row; ++m)for (n = 0; n < matrixB.col; ++n)for (k = 0; k < matrixA.col; ++k){if (k == 0) matrixC.elements[m][n] = 0;//为新矩阵C每个元素初始化//matrixC.elements[m][n] += matrixA.elements[m][k] * matrixB.elements[k][n];}printf("\n\n矩阵A为:\n\n");for (m = 0; m < matrixA.row; ++m){printf("  |");for (k = 0; k < matrixA.col; ++k){printf(" %-5d", matrixA.elements[m][k]);}printf("\b\b\b|\n");}printf("\n\n矩阵B为:\n\n");for (k = 0; k < matrixB.row; ++k){printf("  |");for (n = 0; n < matrixB.col; ++n){printf(" %-6d", matrixB.elements[k][n]);}printf("\b\b|\n");}printf("\n矩阵A左乘矩阵B为:\n\n");for (m = 0; m < matrixA.row; ++m){printf("  |");for (n = 0; n < matrixB.col; ++n){printf(" %-6d",matrixC.elements[m][n]);}printf("\b\b|\n");}printf("\n");system("pause");return 0;
}

仿真结果:

例49. 矩阵转换。

#include <stdio.h>
#include <stdlib.h>
int main()
{int a[10][10], transpose[10][10], r, c, i, j;printf("输入矩阵的行与列: ");scanf("%d %d", &r, &c);printf("输入矩阵元素:\n");for(i=0; i<r; ++i)       //行//for(j=0; j<c; ++j)   //列//{printf("输入元素 a%d%d: ",i+1, j+1);scanf("%d", &a[i][j]);}printf("\n输入矩阵: \n");for(i=0; i<r; ++i)for(j=0; j<c; ++j){printf("%d  ", a[i][j]);if (j == c-1)printf("\n\n");}//转职//for(i=0; i<r; ++i)for(j=0; j<c; ++j){transpose[j][i] = a[i][j];}printf("\n转换后矩阵:\n");for(i=0; i<c; ++i)for(j=0; j<r; ++j){printf("%d  ",transpose[i][j]);if(j==r-1)printf("\n\n");}system("pause");return 0;
}

仿真结果:

例50. 使用指针访问数组元素。

#include <stdio.h>
#include <stdlib.h>
int main()
{int data[5], i;printf("输入5个元素,以逗号分割: ");for(i = 0; i < 5; ++i)scanf("%d", data + i);//scanf("%d",data+i)等于scanf("%d",&data[i])功能//printf("你输入的是: \n");for(i = 0; i < 5; ++i)printf("%d\n", *(data + i));system("pause");return 0;
}

仿真结果:

例51. 使用引用循环替换数值。

#include<stdio.h>
#include<stdlib.h>
void cyclicSwap(int *a,int *b,int *c);
int main()
{printf("a、b、c 三个变量,通过引用按顺序循环替换他们的值\n");int a, b, c;printf("输入 a, b 和 c 的值(以空格分隔): ");scanf("%d %d %d",&a,&b,&c);printf("交换前:\n");printf("a = %d \nb = %d \nc = %d\n",a,b,c);cyclicSwap(&a, &b, &c);printf("交换后:\n");printf("a = %d \nb = %d \nc = %d",a, b, c);printf("\n");system("pause");return 0;
}
void cyclicSwap(int *a,int *b,int *c)
{int temp;temp = *b;*b = *a;*a = *c;*c = temp;
}

仿真结果:

例52. 判断最大值。

#include <stdio.h>
#include <stdlib.h>
int main()
{int i, num;float *data;printf("输入元素个数(1 ~ 100): ");scanf("%d", &num);data = (float*) calloc(num, sizeof(float));  //分配num个float大小的内存//if(data == NULL){printf("Error!!! 内存没有分配\n");system("pause");exit(0);}for(i = 0; i < num; ++i){printf("输入数字 %d: ", i + 1);scanf("%f", &data[i]);                   //也可以写成scanf("%f",data+i);//}for(i = 1; i < num; ++i){if(*data < *(data + i))*data = *(data + i);}printf("最大元素 = %.2f", *data);printf("\n");system("pause");return 0;
}

仿真结果:

例53. 删除字符串中的特殊字符。

#include <stdio.h>
#include <stdlib.h>
int main()
{char line[150];int i, j;printf("输入一个字符串: ");fgets(line, (sizeof line / sizeof line[0]), stdin);for(i = 0; line[i] != '\0'; ++i){//'\0'就是运行到字符串结尾时结束// while (!( (line[i] >= 'a' && line[i] <= 'z') || (line[i] >= 'A' && line[i] <= 'Z') || line[i] == '\0') ) {//当第i个字符不为字母时才运行while循环里的内容//for(j = i; line[j] != '\0'; ++j){line[j] = line[j+1];}line[j] = '\0';}}printf("输出: ");puts(line);//puts()函数用来向标准输出设备(屏幕)输出字符串并换行//system("pause");return 0;
}

仿真结果:

例54. 连接字符串。

#include <stdio.h>
#include <stdlib.h>
int main()
{char s1[100], s2[100], i, j;printf("输入第一个字符串: ");scanf("%s", s1);printf("输入第二个字符串: ");scanf("%s", s2);for(i = 0; s1[i] != '\0'; ++i);for(j = 0; s2[j] != '\0'; ++j, ++i){s1[i] = s2[j];}s1[i] = '\0';printf("连接后: %s\n", s1);system("pause");return 0;
}

仿真结果:

例55. 计算字符串长度。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{printf("使用strlen()函数\n");char s[1000];int len,i;printf("输入一个字符串: ");scanf("%s", s);len = strlen(s);printf("字符串长度: %d\n", len);printf("接下来,不使用strlen()函数\n");printf("输入一个字符串: ");scanf("%s", s);for(i = 0; s[i] != '\0'; ++i);printf("字符串长度: %d\n", i);system("pause");return 0;
}

仿真结果:

例56. 查找字符在字符串中出现的次数。

#include <stdio.h>
#include <stdlib.h>
int main()
{char str[1000], ch ;int i, frequency = 0,strlen=0,str0len=0;printf("输入字符串: ");fgets(str, (sizeof str / sizeof str[0]), stdin);strlen =sizeof str;str0len=sizeof str[0];printf("共有字节数str为:%d,\n一个元素str[0]占字节总数为:%d\n",strlen, str0len);printf("输入要查找的字符: ");scanf("%c",&ch);for(i = 0; str[i] != '\0'; ++i){if(ch == str[i])++frequency;}printf("字符 %c 在字符串中出现的次数为 %d\n", ch, frequency);system("pause");return 0;
}

仿真结果:

例57. 字符串中各种字符计算。

#include <stdio.h>
#include <stdlib.h>
int main()
{char line[150];int i, vowels, consonants, digits, spaces;vowels =  consonants = digits = spaces = 0;printf("输入一个字符串: ");scanf("%[^\n]", line);for(i=0; line[i]!='\0'; ++i){if(line[i]=='a' || line[i]=='e' || line[i]=='i' ||line[i]=='o' || line[i]=='u' || line[i]=='A' ||line[i]=='E' || line[i]=='I' || line[i]=='O' ||line[i]=='U')                                                           //找元音个数//{++vowels;}else if((line[i]>='a'&& line[i]<='z') || (line[i]>='A'&& line[i]<='Z'))    //找大小写字母个数//{++consonants;}else if(line[i]>='0' && line[i]<='9')                                      //找数字个数//{++digits;}else if (line[i]==' ')                                                     //读空白的次数//{++spaces;}}printf("元音: %d",vowels);printf("\n辅音: %d",consonants);printf("\n数字: %d",digits);printf("\n空白符: %d\n", spaces);system("pause");return 0;
}

仿真结果:

例58. 字符串复制。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{printf("使用 strcpy()函数\n");char src[40];char dest[100];memset(dest, '\0', sizeof(dest));  //将某一块内存中的内容全部设置为指定的值//strcpy(src, "This is my money!"); //把含有'\0'结束符的字符串复制到另一个地址空间//strcpy(dest, src);                 printf("最终的目标字符串: %s\n", dest);system("pause");printf("接下来,不使用strcpy()函数\n");char s1[100], s2[100], i;printf("字符串 s1: ");scanf("%s",s1);for(i = 0; s1[i] != '\0'; ++i){s2[i] = s1[i];}s2[i] = '\0';printf("字符串 s2: %s\n", s2);system("pause");return(0);
}

仿真结果:

例59. 字符串排序。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{int i, j;char str[6][50], temp[25];printf("输入6个英文单词(单个单词最大字母不能超过25):\n");for(i=0; i<6; ++i) {scanf("%s[^\n]",str[i]);   //接收字符串但不接收\n//}for(i=0; i<5; ++i) {for(j=i+1; j<6 ; ++j){if(strcmp(str[i], str[j])>0)  //两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止//{strcpy(temp, str[i]);strcpy(str[i], str[j]);strcpy(str[j], temp);}}}printf("排序后: \n");for(i=0; i<6; ++i){puts(str[i]);}system("pause");return 0;
}

仿真结果:

例60. 使用结构体。

#include <stdio.h>
#include <stdlib.h>
struct players
{char name[30];int num;float height;float weight;
}p;
int main()
{printf("输入信息:\n");printf("名字: ");scanf("%s", p.name);printf("编号: ");scanf("%d", &p.num);printf("身高: ");scanf("%f", &p.height);printf("体重: ");scanf("%f", &p.weight);printf("显示信息:\n");printf("名字: ");puts(p.name);printf("编号: %d\n",p.num);printf("身高: %.1f\n", p.height);system("pause");return 0;
}

仿真结果:

例61. 复数相加。

#include <stdio.h>
#include <stdlib.h>
typedef struct complex
{float real;float imag;
} complex;
complex add(complex n1,complex n2);
int main()
{complex n1, n2, temp; //三个一样的结构体//printf("第一个复数 \n");printf("输入实部和虚部:\n");scanf("%f %f", &n1.real, &n1.imag);printf("第二个复数 \n");printf("输入实部和虚部:\n");scanf("%f %f", &n2.real, &n2.imag); temp = add(n1, n2);printf("Sum = %.1f + %.1fi\n", temp.real, temp.imag); system("pause");return 0;
}
complex add(complex n1, complex n2)
{complex temp;temp.real = n1.real + n2.real;temp.imag = n1.imag + n2.imag;return(temp);
}

仿真结果:

例62. 计算两个时间段的差值。

#include <stdio.h>
#include <stdlib.h>
struct TIME
{int seconds;int minutes;int hours;
};
//*diff是因为运行被调用函数时可改变主调用函数变量的值//
void differenceBetweenTimePeriod(struct TIME t1, struct TIME t2, struct TIME *diff);
int main()
{struct TIME startTime, stopTime, diff;printf("输入开始时间: \n");printf("输入小时、分钟、秒:");scanf("%d %d %d", &startTime.hours, &startTime.minutes, &startTime.seconds);printf("输入停止时间: \n");printf("输入小时、分钟、秒: ");scanf("%d %d %d", &stopTime.hours, &stopTime.minutes, &stopTime.seconds);differenceBetweenTimePeriod(startTime, stopTime, &diff);printf("差值: %d:%d:%d - ", startTime.hours, startTime.minutes, startTime.seconds);printf("%d:%d:%d ", stopTime.hours, stopTime.minutes, stopTime.seconds);printf("= %d:%d:%d\n", diff.hours, diff.minutes, diff.seconds);system("pause");return 0;
}
void differenceBetweenTimePeriod(struct TIME start, struct TIME stop, struct TIME *diff)
{if(stop.seconds > start.seconds){--start.minutes;start.seconds += 60;}diff->seconds = start.seconds - stop.seconds;if(stop.minutes > start.minutes){--start.hours;start.minutes += 60;}diff->minutes = start.minutes - stop.minutes;diff->hours = start.hours - stop.hours;
}

仿真结果:

例63. 将字符串写入文件。

#include <stdio.h>
#include <stdlib.h>
int main()
{char sentence[1000];FILE *fptr;fptr = fopen("mybook.txt", "w");  //文件指针名=fopen(文件名,使用文件方式)//if(fptr == NULL){printf("Error!");exit(1);}printf("输入字符串:\n");fgets(sentence, (sizeof sentence / sizeof sentence[0]), stdin); fprintf(fptr,"%s", sentence);     //fprintf()函数根据指定的格式(format),向输出流(stream)写入数据(argument)//fclose(fptr);system("pause");return 0;
}

仿真结果:



例64. 从文件中读取一行内容。

#include <stdio.h>
#include <stdlib.h>
int main()
{char c[1000];FILE *fptr;if ((fptr = fopen("mybook.txt", "r")) == NULL){printf("Error! opening file");system("pause");exit(1);         }fscanf(fptr,"%[^\n]", c);printf("读取内容:\n%s", c);fclose(fptr);printf("\n");system("pause");return 0;
}

仿真结果:



例65. 输出当前文件执行代码。

#include <stdio.h>
#include <stdlib.h>
int main() {FILE *fp;char c;fp = fopen(__FILE__,"r");do {c = getc(fp);  //从流中取字符//putchar(c);    //该函数将指定的表达式的值所对应的字符输出到标准输出终端上//}while(c != EOF);fclose(fp);system("pause");return 0;
}

仿真结果:

C语言基础入门实例汇总(共65个案例)相关推荐

  1. C# 零基础入门知识点汇总

    C# 零基础入门 知识点汇总 前言 一,基础语法(1~10) 二,流程控制(11~20) 三,数组相关(21~30) 四,函数介绍(31~40) 五,类和对象(41~50) 六,面向对象(51~60) ...

  2. python代码大全和用法用量_python零基础入门命令方式汇总大全,快速恶补你的Python基础...

    原标题:python零基础入门命令方式汇总大全,快速恶补你的Python基础 无意中浏览到这篇来自大牛的分享,总结的很全面,我重新排版下放在这里,希望能帮助到大家.在此十分感谢原作者! 在开始之前还是 ...

  3. python基础代码大全-python零基础入门命令方式汇总大全,快速恶补你的Python基础...

    原标题:python零基础入门命令方式汇总大全,快速恶补你的Python基础 无意中浏览到这篇来自大牛的分享,总结的很全面,我重新排版下放在这里,希望能帮助到大家.在此十分感谢原作者! 在开始之前还是 ...

  4. R语言基础入门(全)

    R 是门语言,也是个环境.个人认为R有点像matlab. R自带多种统计学及数字分析功能.R的功能也可以通过安装包(Packages,用户撰写的功能)增强,个人感觉这个就是插件.因为S的血缘,R比其他 ...

  5. 【学习笔记】山东大学生物信息学——Perl 语言基础入门+高级

    文章目录 8.3 Perl 语言基础入门 8.3.1 第一个 Perl 8.3.2 Perl 的基本规则 8.3.3 字符串常用函数 8.3.4 数组常用函数 8.4 Perl 语言基础高级 8.4. ...

  6. [R语言基础]——数据处理实例

    [R语言基础]--数据处理实例 前言 问题 Step1:建立数据框 Step2:计算综合得分 Step3:对学生进行评分 Step4:根据姓氏和名字排序 完整代码 前言 之前我们已经学习了R对数据预处 ...

  7. c语言用if语句abc输出最大值,C语言基础入门选择结构-if语句(78页)-原创力文档...

    C语言基础入门选择结构-if语句_电脑基础知识_IT/计算机_专业资料.第9单元选择结构-if语句<程序设计基础>北京八维研修学院第1节选择结构导入?... <程序设计基础> ...

  8. 支付宝小程序-基础入门技能汇总

    支付宝小程序-基础入门技能汇总 开发前必知 页面级常用配置 常用 列表渲染 空标签 事件 图片引入 css背景图 自定义组件 开发工具 vscode 工具 底部导航 开发前必知 ● css单位用rpx ...

  9. C语言基础入门学习笔记

    前言 我是一个初中生,过完暑假就是一个高一的学生了.在这个暑假里,我学习了韦东山老师和唐佐林老师的课程,所以我写下这个笔记来记录自己的成长历程. C语言基础入门学习笔记 格式 #include < ...

  10. PPT基础入门实例:倾斜型封面页制作

    PPT基础入门实例:倾斜型封面页制作 [实例主要用到知识点]: PPT形状编辑顶点 PPT改变层级 图片放入到形状里 推荐一个PPT常用字体 效果图 第一步:绘制一个矩形,选定然后通过[绘图工具]-[ ...

最新文章

  1. 使用Keras进行深度学习:(二)CNN讲解及实践
  2. PHP CURL 哈哈哈哈哈记录一下
  3. 复旦计算机考研19年录取线,2019年复旦大学考研复试分数线已公布
  4. Apple 低延迟HLS分析
  5. 北京Uber优步司机奖励政策(4月7日)
  6. IMS与未来电信产业演变
  7. 数学建模国赛论文latex代码汇总
  8. rose怎么画业务流程图_如何用Rational rose创建类图
  9. 大学生自己做网站如何赚钱
  10. Docker 自动化部署
  11. tensorflow中squeeze与expand_dims
  12. importOrder
  13. JavaScript中原生Array数组方法详解
  14. CSS3 transform 2D变幻,过渡
  15. CM10稳定版推出;CyanogenMod域名险被劫持
  16. 微信小程序悬浮按钮-点击传参
  17. java abc输出bca_面试题24(写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab c...
  18. vba mysql 自动化错误_vba小程序报自动化(Automation)错误如何处理?
  19. 计算机科学只用向量还是矢量,请高手指点:向量、数量、矢量、标量的区别和 – 手机爱问...
  20. DCE维护项目配置文件方式

热门文章

  1. 俄罗斯方块c语言代码及注释,俄罗斯方块C语言代码
  2. RAIM: A Reverse Auction-based Incentive Mechanism for Mobile Data Offloading through Opportunistic
  3. potato土豆引流脚本,potato引流软件工具
  4. 打印时总跟出一页计算机主的纸,如何将多页PDF打印在一张纸上
  5. FPGA信号处理系列文章——数字锁频环
  6. can 自动波特率 linux,CAN特殊波特率如何计算
  7. 几何画板椭圆九种画法_如何利用几何画板自定义工具画椭圆
  8. 深入浅出设计模式(一):单例模式
  9. 陈纪修老师《数学分析》 第10章:函数项级数 笔记
  10. 无纸化民主测评考核系统领导班子干部微信二维码匿名评价投票打分平台