1、写一个程序,输出如下内容:
1 //#############################################################2 //### name number math english computer ###3 //### zhanghua ,9901, 80.5, 87.0, 80.0 ###4 //### lina ,9902, 70.0, 80.0, 90.0 ###5 //### wanggang ,9903, 87.0, 76.0, 78.0 ###6 //#############################################################
程序代码:
1 structscore{2 char *name;3 intnumber;4 floatmath;5 floatenglish;6 floatcomputer;7 };8
9 struct score sc[3] ={10 {"zhanghua", 9901, 80.5, 87, 80},11 {"lina", 9902, 70, 80, 90},12 {"wanggang", 9903, 87, 76, 78},13 };14 printf("name number math english computer\n");15
16 for (int i=0; i<3; i++) {17 printf("%-9s,%d,%10.1f,%10.1f,%10.1f\n",sc[i].name, sc[i].number,sc[i].math,sc[i].english,sc[i].computer);18 }
回车后输出:
1 name number math english computer2 zhanghua ,9901, 80.5, 87.0, 80.0
3 lina ,9902, 70.0, 80.0, 90.0
4 wanggang ,9903, 87.0, 76.0, 78.0
5 Program ended with exit code: 0
2,计算2+4+6+8+。。。+100
1 int sum = 0;2 for (int i=2; i<=100; i+=2) {3 sum+=i;4 }5 printf("2+4+6+8+...+100=%d.\n",sum);
回车后输出:
1 2+4+6+8+...+100=2550.2 Program ended with exit code: 0
3、计算1到100之间的奇数和与偶数和
1 int jsum = 0;2 int osum = 1;3
4 for (int i=1 ;i<=100 ; i++) {5 if (i%2) {6 jsum+=i;7 }else{8 osum+=i;9 }10 }11
12 printf("jsum=%d,\tosum=%d\n", jsum, osum);
回车后输出:
1 jsum=2500, osum=2551
2 Program ended with exit code: 0
4、求1到100的非素数之和
1 int sum = 0;2 int j= 0;3 for (int i=1; i<=100; i++) {4 for (j=2; j
回车后输出:
1 jsum=2500, osum=2551
2 Program ended with exit code: 0
5、调用子函数实现1到100的非素数和,其中子函数判断数字是否非素数,如果非素数,则返回
主函数:
1 int sum = 0;2 for (int i = 1 ; i<=100; i++) {3 sum +=sushu(i);4 }5 printf("%d\n", sum);
子函数:
1 int sushu(intn){2 inti;3 for (i=2; i
输出:
1 3990
2 Program ended with exit code: 0
6、有一个四位正整数,组成着四个正整数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位数互换,组成一个新的四位数,原来四位数刚好是新四位数的4倍,求这样的四位数:
1 int a = 0;2 int b = 0;3 for (int i=1; i<10; i++) {4 for (int j=0; j<10; j++) {5 for (int k=0; k<10; k++) {6 for (int l=1; l<10; l++) {7 a=1000*i+100*j+10*k+l;8 b=1000*l+100*k+10*j+i;9 if (a==4*b && i!=j &&j!=k && k!=l) {10 printf("%d\t",a);11 }12 }13 }14 }15 }16 printf("\n");
输出:
1 8712
2 Program ended with exit code: 0
7、两个乒乓球队进行比赛,各处三个人,甲队为A,B,C三人,乙队为X,Y,Z三人,其中A不和X比,C不和X,Z比,请编程找出三对赛手的名单:
1 //设A=1,B=2,C=3.
2
3 intx,y,z;4 for (x=1; x<4; x++) {5 for (y=1; y<4; y++) {6 for (z=1; z<4; z++) {7 if ((x+y+z)==6 && (x!=1) && (x!=3) && (z!=3) &&(x!=y) && (y!=z)) {8 printf("x=%d\ty=%d\tz=%d", x, y, z);9 }10 }11 }12 }
输出:
x=2 y=3 z=1Program ended with exit code:0
8、对一个3*3的二维数组进行转置,即行列互换
1 int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};2 int tmp = 0;3
4 for (int i=0; i<3; i++) {5 for (int j=i+1; j<3; j++) {6 tmp =a[i][j];7 a[i][j] =a[j][i];8 a[j][i] =tmp;9 }10 }11
12 for (int i=0; i<3; i++) {13 for (int j=0; j<3; j++) {14 printf("%d\t",a[i][j]);15 }16 printf("\n");17 }
输出:
1 1 4 7
2 2 5 8
3 3 6 9
4 Program ended with exit code: 0
9、输入20个正整数,判断是否素数,如果是则排序。
主函数:
1 int a[20] = {0};2 int b[20] = {0};3
4 printf("请输入20个正整数\n");5
6 for (int i=0; i<20; i++) {7 scanf("%d",&a[i]);8 b[i] =sushu(a[i]);9 }10
11 rank(b, 20);12
13 for (int i=0; i<20; i++) {14 if (b[i]>0) {15 printf("%d\t",b[i]);16 }17 }18
19 printf("\n");
rank()子函数(使用选择法排序):
1 void rank(int *p, intn){2 int max = 0;3 int tmp = 0;4 for (int i=0; i
12 if (i!=max) {13 tmp = *(p+max);14 *(p+max) = *(p+i);15 *(p+i) =tmp;16 }17 }18 }
10、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数:①输入10个数;②进行处理;③输出10个数。
主函数:
1 int a[10] = {0};2 printf("请输入十个数:\n");3 inputnum(a);4 deal(a, 10);5 output(a, 10);
输入、输出、处理子函数:
1 //输入十个数子函数
2 void inputnum(int *a){3
4 for (int i=0;i<10 ; i++) {5 scanf("%d",&a[i]);6 }7
8 }9
10 //处理函数:将其中最小的数与第一个数对换,把最大的数与最后一个数对换
11 void deal(int *p, intn){12 int max=0,min=0;13 int tmp=0,i=0,j=0;14 max=i;15 for (i=0; i
20 }21 tmp = *(p+max);22 *(p+max) = *(p+0);23 *(p+0) =tmp;24
25 min=j;26 for (j=0; j*(p+j)) {28 min=j;29 }30 }31
32 tmp = *(p+min);33 *(p+min) = *(p+n-1);34 *(p+n-1) =tmp;35 }36
37 //输出函数
38 void output(int *p, intn){39 for (int i=0; i
11、使用子函数对数列排序:
主函数:
1 intmain() {2
3 int a[5] = {90, 50, 80, 70, 60,};4
5 rank(a,5);6
7 for (int i=0; i<5; i++) {8 printf("%d\t", a[i]);9 }10
11 printf("\n");12
13 return 0;14 }
子函数:
1 void rank(int * p, intn){2
3 int max = 0;4 int tmp = 0;5
6 for (int i=0; i
12、有n个学生,每个学生的数据包括学号(num),姓名(name[20]),性别(sex),年龄(age),
三门课的成绩(score[3])。要求在main函数中输入这n个学生的数据, 然后调用一个函数count,在该函数中计算出每个学生的总分和平均分, 然后打印出所有各项数据(包括原有的和新求出的)。
1 inti;2 floats0,s1,s2;3
4 struct student a[3];5
6 for(i=0;i<3;i++) {7 scanf("%d%s %c%d%f%f%f",&a[i].num, a[i].name, &a[i].sex,&a[i].age, &s0, &s1, &s2);8 a[i].score[0]=s0;a[i].score[1]=s1;a[i].score[2]=s2;9 printf("%d %s %c %d %4.1f %4.1f %4.1f\n",a[i].num,a[i].name, a[i].sex,a[i].age,a[i].score[0],a[i].score[1],a[i].score[2]);10 }11 count(a,3);12 printf("=============================================\n");13 printf("NO name sex age score[0] score[1] score[2] total ave\n");14
15 for(i=0;i<3;i++)16 printf("%d %s %c %d %5.1f %5.1f %5.1f %5.1f %5.1f\n", a[i].num,a[i].name,a[i].sex,a[i].age,a[i].score[0], a[i].score[1],a[i].score[2],a[i].total,a[i].ave);17
18
19 return 0;
结构体定义:
1 structstudent2 {3 intnum;4 char name[20];5 charsex;6 intage;7 float score[3];8 floattotal;9 floatave;10 };
count()子函数:
1 void count(struct student * b,intn) {2 inti,j;3 for(i=0;i
原文:http://www.cnblogs.com/jiwangbujiu/p/5294607.html