您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页c语言初学必背代码

c语言初学必背代码

来源:意榕旅游网
//1.成绩判断

#include int main() { //成绩 int score; printf(\"请输入你的成绩:\\n\"); scanf(\"%d\ //判断 if(score >=0 && score < 60) { printf(\"不及格\\n\"); } else if(60 <= score && score < 80) { printf(\"中等\\n\"); } else if(80 <= score && score < 100) { printf(\"优秀\\n\"); } else { printf(\"输入错误!\\n\"); } }

//2.计算1到100的和 #include int main() { int sum = 0; //存结果变量 int i; for(i=1;i <= 100;i++) { sum = sum + i; }

printf(\"sum=%d\\n\

}

//3.最大公约数

#include

//求m,n的最大公约数 int main() { int m, n; int i, k; printf(\"请输入两个数:\"); scanf(\"%d %d\ //三元运算符找较小的那个 k = m < n ? m : n; //从较小的那个数倒着往前找 for(i=k; i>=1; i--) { //这是公约数 if((m % i == 0) && (n % i ==0)) { printf(\"最大公约数是%d\\n\ break; //跳出for循环 } } }

//4.最小公倍数

#include

//求m,n的最小公倍数 int main() { int m, n; int max, min; //m,n中较大,较小的那个 int k; //max, 2*max, 3*max, .....

1

printf(\"请输入两个数:\"); scanf(\"%d %d\

//也可以交换m,n,保证m小n大 max = m > n ? m : n; min = m < n ? m : n; k = max; //从max开始 while(k % min != 0) { k += max; //每次倍增 }

printf(\"最小公倍数是%d\\n\

}

//5.金字塔

#include

//金字塔 int main() { int i; //外层 int j; //内层 for(i=1;i<=10;i++) { //当前是在第i行 //先补空格10-i个 for(j=1;j<=10-i;j++) { printf(\" \"); } //再打2i-1个* for(j=1;j<=2*i-1;j++) { printf(\"*\"); } printf(\"\\n\"); } }

//6.九九乘法表

#include

//打印九九乘法表 int main() { int i,j; for(i=1;i<=9;i++) //外层一定是9行 { for(j=1; j<=i; j++) //内层第几行走几遍 { printf(\"%d*%d=%d \ } printf(\"\\n\"); } }

//7.百钱买百鸡

#include /**

百钱买百鸡,类似1,2,5凑100银币问题 */

int main2() { int i,j;//公鸡,母鸡个数 for(i=0; i<=20; i++) //公鸡 { for(j=0; j<=33; j++) //母鸡 { if( (15*i + 9*j + (100-i-j)) == 300) { printf(\"公鸡%d,母鸡%d,小鸡%d\\n\ } }

2

} }

//1,2,5凑100银币问题 int main3() { int count = 0; //情况数 int i,j;//5分个数,2分个数 for(i=0; i<=20; i++) //5分个数 { for(j=0; j<=50; j++) //2分个数 { if( ( 5*i + 2*j ) <= 100 ) { count++; printf(\"%d: 5分%d个,2分%d个,1分%d个\\n\ } } } }

//8.一维数组的最大值、最小值、平均值 #include #define N 10 //宏定义常量 int main() { int i;//下标索引 int max, min; double sum = 0; //累加和 int a[N] = {58, 58, 96, 100, 25, 55, 66, 88, 99, 77}; max = a[0]; //假设第一个最大 min = a[0]; //假设第一个最小 for(i=1; i max) //比最大值还大 max = a[i]; //你才是最大 if(a[i] < min) //比最小值还小 min = a[i]; //你才是最小

3

}

sum += a[i]; }

printf(\"max=%d, min=%d\\n\printf(\"average = %.2lf\\n\

//9.二维数组的最大值、最小值、平均值 #include int main() { int i; //第几行 int j; //第几列 int a[3][4] = { {1,2,3,4}, {5,-6,7,8}, {9,19,39,0}}; int max = a[0][0]; //假设你最大 int min = a[0][0]; //假设你最小 double average; //平均值 double sum = 0; //总和 for(i=0; i<3; i++) //必定3行 { for(j=0; j<4; j++) //必定4列 { printf(\"%5d \ sum += a[i][j]; if(a[i][j] > max) max = a[i][j]; if(a[i][j] < min) min = a[i][j]; } printf(\"\\n\"); } average = sum / (3*4); printf(\"max=%d, min=%d, avg=%.2lf\\n\max, min, average); }

//10.二维数组转置

#include

//二维数组转置:行变列,列变行 //11.冒泡排序

#include #define N 10 //宏定义常量 int main() { int i; //第几行 int j; //第几列 int a[3][4] = { {1,2,3,4}, {9,19,39,0}}; int b[4][3]; for(i=0; i<3; i++) { for(j=0; j<4; j++) { printf(\"%5d\ } printf(\"\\n\"); } //矩阵转置 for(i=0; i<3; i++) { for(j=0; j<4; j++) { b[j][i] = a[i][j]; } } for(i=0; i<4; i++) { for(j=0; j<3; j++) { printf(\"%5d\ } printf(\"\\n\"); } }

int main() { int i; //下标索引 int j; {5,-6,7,8}, int tmp; //临时交换用 int a[N] = {58, 58, 96, 100, 25, 55, 66, 88, 99, 77}; //外层循环一定是N-1 for(i=0; i a[j+1]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } for(i=0; i//12.结构冒泡排序

#include

4

//结构定义,用户自定义类型 typedef struct student{ char sno[20]; //学号 char name[20]; //姓名 int age; //年龄 char gender; //性别 char tel[20]; //电话 };

int main() { int i; int j; double sum = 0; struct student tmp; //两两交换临时用; //结构数组 struct student team[5]; for(i=0; i<5; i++) { printf(\"请输入第%d个队员的信息:\\n\i+1); scanf(\"%s %s %d %c %seam[i].sno, team[i].name, &team[i].age, &team[i].gender, team[i].tel); } //按年龄冒泡排序 for(i=0; i<5; i++) { for(j=0; j<5-i-1; j++) { //两两交换 if(team[j].age > team[j+1].age) { tmp = team[j]; team[j] = team[j+1]; team[j+1] = tmp; } } } //取值 printf(\"%-12s %-10s %-5s %-5s %-15s\\n\学号\姓名\年龄\性别\电话\");

5

for(i=0; i<5; i++) { printf(\"%-12s %-10s %-5d %-5c %-15s\\neam[i].sno, team[i].name, team[i].age, team[i].gender, team[i].tel); } }

//13.结构数组找年龄最大值

#include

//结构定义,用户自定义类型 typedef struct student{ char sno[20]; //学号 char name[20]; //姓名 int age; //年龄 char gender; //性别 char tel[20]; //电话 };

int main() { int i; struct student tmp; //找最大临时用 //结构数组 struct student team[5]; for(i=0; i<5; i++) { printf(\"请输入第%d个队员的信息:\\n\ scanf(\"%s %s %d %c %seam[i].sno, team[i].name, &team[i].age, &team[i].gender, team[i].tel); }

//取值 printf(\"%-12s %-10s %-5s %-5s %-15s\\n\学号\姓名\年龄\性别\电话\"); for(i=0; i<5; i++) { printf(\"%-12s %-10s %-5d %-5c %-15s\\neam[i].gender, team[i].tel); } //找学号最大的那一个 tmp = team[0]; for(i=1; i<5; i++) { if(strcmp(team[i].sno,tmp.sno) > 0 ) { tmp = team[i]; } } printf(\"学号最大的队员如下:\\n\"); printf(\"%-12s %-10s %-5d %-5c %-15s\\nmp.sno, tmp.name, tmp.age, tmp.gender, tmp.tel); }

//14.文件读写

#include #include

//结构定义,用户自定义类型 typedef struct student{ char sno[20]; //学号 char name[20]; //姓名 int age; //年龄 char gender; //性别 char tel[20]; //电话 };

//文件读写

6

int main() { struct student * s, * p1; //个数未知 FILE * fp; int i, n = 0; char buf[1024];//fgets缓冲区 //打开文件 fp = fopen(\"e:\\\est.txt\ while(fgets(buf, 1024, fp) != NULL) n++; fclose(fp); //指向一个可以存储n个student结构的内存空间 s = (struct student *)malloc(sizeof(struct student) * n); p1 = s; //不要动头位置s的值 //打开文件 fp = fopen(\"e:\\\est.txt\ for(i=0; iname, &p1->age, &p1->gender, p1->tel); p1++; } fclose(fp); p1 = s; for(i=0; i<3; i++) { printf(\"%s %s %d %c %s\\n\p1->sno, p1->name, p1->age, p1->gender, p1->tel); } free(s); }

//15.输入三角形三边长计算周长和面积

#include #include

int main() case 10: { case 12:printf(\"31\");break; double area,perimeter,s,a,b,c; case 4:

case 6: printf(\"请输入三边长 a b c:\");

scanf(\"%lf%lf%lf\ case 9: if((a+b>c) && (a+c>b) && (b+c>a)) case 11:printf(\"30\");break; { case 2:printf(\"%d\ s=(a+b+c)/2; default:printf(\"error\");break; area=sqrt(s*(s-a)*(s-b)*(s-c)); } perimeter=a+b+c; return 0; printf(\"area=%.2f,perimeter=%.2f\\} n\ } else

{ printf(\"三边长无法构成三角形。//17.1,2,5分硬币问题 \\n\");

}

#include

return 0;

int main()

}

{

int sum = 0;

for(int i=0; i<=20; i++) //16.输入年份和月份输出对应那一月的天 {

for(int j=0; j<=50; j++) 数,要处理闰年

{

if(5*i + 2*j <= 100) #include sum++;

int main() else { break; int year,month; } int leap =0; } scanf(\"%d %d\ printf(\"%d\\n\ if((year %4==0 && year %100 !=0) || } year %400 ==0) //闰年2月29天 { leap=1;

}

//18.100到200所有的素数

switch(month)

{

#include case 1:

int main() case 3:

{ case 5:

int i,j,n; case 7:

//外层 case 8:

for(i=100; i<=200; i++) 7

//5分 //2分

{ n = i; //内层

for(j=2;j<=n-1;j++) { if(n%j == 0) break; //不是素数 { int tmp = *pa; *pa = *pb; *pb = tmp; }

int main() }

{ if(j==n) //没找到 printf(\"%d是素数\\n\ else printf(\"%d不是素数\\n\

}

}

} //19.输入一个数n,计算12+22+32+…+n2

#include

int main() { int sum = 0; int i, k; scanf(\"%d\ i = 1; while(i <= k) { sum = sum + i * i; i++; } printf(\"sum = %d\\n\}

//20.指针交换

//定义一个方法swap()通过指针交换两个整数 ,并在main()中调用 #include

void swap(int *pa, int *pb)

8

int a = 3; int b = 5; int *pa = &a; int *pb = &b; swap(pa, pb); printf(\"a=%d, b=%d\\n\

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务