《2022年c语言初学必背代码.docx》由会员分享,可在线阅读,更多相关《2022年c语言初学必背代码.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -/1. 成果判定printfsum=%dn, sum;#include int main /3. 最大公约数/ 成果int score; #include printf 请输入你的成果 :n;/ 求 m,n 的最大公约数scanf%d, &score; / 判定 ifscore =0 & score 60 int main int m, n;int i, k;printf 不及格 n;printf 请输入两个数 :; scanf%d %d, &m, &n;else if60 = score & score 8
2、0 printf 中等n;/ 三元运算符找较小的那个 k = m =1; i-else if80 = score & score 100/ 这是公约数printf 优秀n;ifm % i = 0 & n % i =0elseprintf 最大公约数是 %dn, i;break;/ 跳出 for 循环printf 输入错误 .n;/4. 最小公倍数/2. 运算 1 到 100 的和#include int main int sum = 0; / 存结果变量 int i; fori=1;i = 100;i+ sum = sum + i; 细心整理归纳 精选学习资料 - - - - - - - -
3、- - - - - - -#include / 求 m,n 的最小公倍数 int mainint m, n;int max, min;/m,n中较大 ,较小的那个int k;/max, 2*max, 3*max, . 第 1 页,共 8 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -printf 请输入两个数 :; scanf%d %d, &m, &n;/6. 九九乘法表/ 也可以交换 m,n,保证 m 小 n 大#include max = m n . m : n;min = m n . m : n;/ 打印九九
4、乘法表k = max;/ 从 max 开头int mainwhilek % min .= 0int i,j;k += max;/ 每次倍增fori=1;i=9;i+/ 外层肯定是 9 行printf 最小公倍数是 %dn, k;forj=1; j=i; j+ / 内层第几行走几遍printf%d*%d=%d , i, j, i*j;/5. 金字塔printfn;#include / 金字塔int main int i; / 外层 int j; / 内层 fori=1;i=10;i+/ 当前是在第 i 行/7. 百钱买百鸡/ 先补空格 10-i 个#include forj=1;j=10-i;j
5、+/*printf ;百钱买百鸡 ,类似 1,2,5 凑 100 银币问题*/ 再打 2i-1 个*int main2forj=1;j=2*i-1;j+int i,j;/ 公鸡,母鸡个数fori=0; i=20; i+/ 公鸡printf*;forj=0; j=33; j+/ 母鸡printfn;if 15*i + 9*j + 100-i-j = 300printf 公鸡 %d,母鸡 %d,小 鸡%dn, i, j, 100-i-j; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 名师归纳总结
6、 精品学习资料 - - - - - - - - - - - - - - -sum += ai;printfmax=%d, min=%dn, max, min;/1,2,5 凑 100 银币问题printfaverage = %.2lfn, sum/N;int main3int count = 0; / 情形数 int i,j;/5 分个数, 2 分个数 fori=0; i=20; i+ /5 分个数 forj=0; j=50; j+ /2 分个数if 5*i + 2*j = 100 count+; printf%d: 5 分%d个,2 分%d 个, 1 分%d 个n, count, i, j,
7、 100-5*i-2*j; /8. 一维数组的最大值、最小值、平均值#include /9. 二维数组的最大值、最小值、平均值#include int main int i; / 第几行 int j; / 第几列int a34 = 1,2,3,4, 5,-6,7,8, 9,19,39,0; int max = a00;/ 假设你最大 int min = a00; / 假设你最小 double average; / 平均值 double sum = 0; /总和 fori=0; i3; i+ / 必定 3 行 forj=0; j maxint i;/ 下标索引max = aij;int max,
8、 min;ifaij mindouble sum = 0; / 累加和int aN = 58, 58, 96, 100, 25, 55, 66, 88, min = aij;99, 77;max = a0;/ 假设第一个最大printfn;min = a0;/ 假设第一个最小fori=1; i max/ 比最大值仍大printfmax=%d, min=%d, avg=%.2lfn, max = ai;/ 你才是最大max, min, average;ifai min / 比最小值仍小细心整理归纳 精选学习资料 min = ai;/ 你才是最小 第 3 页,共 8 页 - - - - - - -
9、 - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -/10. 二维数组转置 /11. 冒泡排序#include 5,-6,7,8, #include / 二维数组转置:行变列,列变行#define N 10/ 宏定义常量int mainint mainint i; / 第几行int i;/ 下标索引int j; / 第几列int j;int a34 = 1,2,3,4, int tmp;/ 暂时交换用9,19,39,0; int b43;int aN = 58, 58, 96, 100, 2
10、5, 55, 66, 88, 99, 77;/ 外层循环肯定是 N-1fori=0; i3; i+ forj=0; j4; j+ printf%5d, aij;printfn;fori=0; iN-1; i+ / 两两交换,大的往后走 forj=0; j aj+1tmp = aj;/ 矩阵转置 fori=0; i3; i+ forj=0; j4; j+ bji = aij;aj = aj+1; aj+1 = tmp; fori=0; iN; i+ printf%d , ai;fori=0; i4; i+printfn;forj=0; j3; j+ printf%5d, bij; printfn
11、;/12. 结构冒泡排序#include 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -/ 结构定义 ,用户自定义类型 typedef struct studentfori=0; i5; i+ char sno20; / 学号char name20; / 姓名int age; / 年龄char gender;/ 性别printf%-12s %-10s %-5d %-5c %-15sn, teami.sno,
12、teami.name, teami.age, teami.gender, teami.tel;char tel20; / 电话int mainint i;int j; double sum = 0; struct student tmp; / 两两交换暂时用 ; / 结构数组struct student team5; fori=0; i5; i+ printf 请输入第 %d个队员的信息 :n, i+1;scanf%s %s %d %c %s, teami.sno, teami.name, &teami.age, &teami.gender, teami.tel; /13. 结构数组找年龄最大
13、值#include / 结构定义 ,用户自定义类型 typedef struct student char sno20; / 学号 char name20; / 姓名 int age; / 年龄/ 按年龄冒泡排序;char gender;/ 性别char tel20; / 电话fori=0; i5; i+forj=0; j teamj+1.age tmp = teamj; teamj = teamj+1; teamj+1 = tmp;/ 取值 printf%-12s %-10s %-5s %-5s %-15sn, 学号 , 姓名, 年龄 , 性别 , 电话;int main int i; st
14、ruct student tmp; / 找最大暂时用 / 结构数组 struct student team5; fori=0; i5; i+ printf 请输入第 %d 个队员的信 息:n, i+1; scanf%s %s %d %c %s, teami.sno, teami.name, &teami.age, &teami.gender, teami.tel; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - -
15、-/ 取值 printf%-12s %-10s %-5s %-5s %-15snint main , 学号 , 姓名, 年龄 , 性别 , 电话;struct student * s, * p1;/ 个数未知fori=0; i whilefgetsbuf, 1024, fp .= NULL/ 找学号最大的那一个n+;fclosefp;tmp = team0;/ 指向一个可以储备n 个 student 结构的fori=1; i5; i+内存空间s = struct student *mallocsizeofstruct ifstrcmpteami.sno,tmp.sno student * n;
16、0 tmp = teami; printf 学号最大的队员如下 :n;p1 = s; / 不要动头位置 s 的值 / 打开文件 fp = fopene:test.txt, r; fori=0; isno, tmp.gender, tmp.tel;p1-name, &p1-age, &p1-gender, p1-tel; p1+;fclosefp;/14. 文件读写p1 = s;#include #include fori=0; isno, p1-name, p1-age, p1-gender, p1-tel;/ 结构定义 ,用户自定义类型typedef struct studentfrees;
17、char sno20;/ 学号char name20;/ 姓名int age;/ 年龄;char gender;/ 性别 char tel20; / 电话/15. 输入三角形三边长运算周长和面积/ 文件读写#include 第 6 页,共 8 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -int main case 10: case 12:printf31;break;double area,perimeter,s,a,b,c;
18、 case 4: case 6: case 9:printf 请输入三边长a b c:; scanf%lf%lf%lf,&a,&b,&c; ifa+bc & a+cb & b+cacase 11:printf30;break; case 2:printf%d,28+leap;break;s=a+b+c/2; default:printferror;break;area=sqrts*s-a*s-b*s-c; perimeter=a+b+c; return 0;n,area,perimeter; else /17.1 ,2,5 分硬币问题/5 分printf 三边长无法构成三角形;n; #incl
19、ude int mainreturn 0; int sum = 0;forint i=0; i=20; i+/16. 输入年份和月份输出对应那一月的天/2 分forint j=0; j=50; j+数,要处理闰年if5*i + 2*j = 100#includesum+;elseint mainbreak;int year,month;int leap =0;printf%dn, sum;scanf%d %d,&year,&month; ifyear %4=0 & year %100 .=0 | year %400 =0 /闰年 2 月 29 天细心整理归纳 精选学习资料 /18.100到 2
20、00 全部的素数 第 7 页,共 8 页 leap=1;switchmonth#include int maincase 1:case 3:int i,j,n;case 5:/ 外层case 7:fori=100; i=200; i+case 8: - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -n = i;int tmp = *pa;/ 内层*pa = *pb;forj=2;j=n-1;j+*pb = tmp;ifn%j = 0break;/ 不是素数int
21、mainifj=n / 没找到int a = 3;printf%d 是素数 n, n;int b = 5;elseint *pa = &a;printf%d 不是素数 n, n;int *pb = &b;swappa, pb;printfa=%d, b=%dn, a, b; /19. 输入一个数 n,运算 12+22+32+ +n2#include int main int sum = 0; int i, k; scanf%d, &k; i = 1; whilei = k sum = sum + i * i;i+;printfsum = %dn, sum; /20. 指针交换/ 定义一个方法 swap通过指针交换两个整 数 ,并在 main中调用 #include void swapint *pa, int *pb细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 8 页 - - - - - - - - -
限制150内