25.
#include "stdafx.h" #include "stdio.h" #include<math.h> int main() { double y; int x, m; for (y = 1; y >= - 1; y -= 0.1) /*0到π,π到2π分别绘制21个点*/ { m = acos(y) *10; /*求出对应的横坐标位置*/ for (x = 1; x < m; x++) printf(" "); /*画*前画空格数*/ printf("*"); /*画**/ for (; x < 62-m; x++) /*画出对称面的**/ printf(" "); printf("*\n"); } getchar(); return 0; }
26.
#include "stdafx.h" #include "stdio.h" main() { int a, b, c, x, sum; for (x = 1; x <= 5; x++) /*x的取值范围从1到5*/ { if (10605 % (28-5 * x) == 0) /*满足条件的x值即为所求*/ { sum = 10605 / (28-5 * x); /*计算出邮票总数*/ a = 2 * sum / 10; /*计算a集邮册中的邮票数*/ b = 5 * sum / 7; /*计算b集邮册中的邮票数*/ c = 303; /*c集邮册中的有票数*/ printf("total is %d\n", sum); /*输出邮票的总数*/ printf("A:%d\n", a); /*输出A集邮册中的邮票数*/ printf("B:%d\n", b); /*输出B集邮册中的邮票数*/ printf("C:%d\n", c); /*输出C集邮册中的邮票数*/ } } }
27.
#include "stdafx.h" #include "stdio.h" main() { int i, j, count; puts("the result is:\n"); printf("time red ball white ball black ball\n"); count = 1; for (i = 0; i <= 3; i++) /*红球数量范围0到3之间*/ { for (j = 0; j <= 3; j++) /*白球的数量范围0到3之间*/ { if ((8-i - j) <= 6) /*判断要取黑色球的数量是否在6个以内*/ printf("%3d%8d%9d%10d\n", count++, i, j, 8-i - j); /*输出各种颜色球的数量*/ } } return 0; }
28.
#include "stdafx.h" #include "stdio.h" main() { int n = 1, m, sum, i; /*定义变量为基本整形*/ while (1) { m = n; /*m存储一楼灯的数量*/ sum = 0; for (i = 1; i < 8; i++) { m = m * 2; /*每层楼灯的数量是上一层的2倍*/ sum += m; /*计算出除一楼外灯的总数*/ } sum += n; /*加上一楼灯的数量*/ if (sum == 765) /*判断灯的总数量是否达到765*/ { printf("the first floor has %d\n", n); /*输出一楼灯的数量*/ printf("the eight floor has %d\n", m); /*输出八楼灯的数量*/ break; /*跳出循环*/ } n++; /*灯的数量加1,继续下次循环*/ } return 0; }
29.
#include "stdafx.h" #include "stdio.h" #include <math.h> #include <stdlib.h> main() { int i, j, n = 0; /*定义变量为基本整型*/ system("cls"); printf("10-100之间的素数:\n"); for (i = 10; i <= 100; i++) { for (j = 2; j <= sqrt(i); j++) { if (i % j == 0) /*判断是否能被整除*/ break; /*如果能被整除,就不需要接着判断,跳出循环*/ else { if (j > sqrt(i) - 1) { printf("%d,", i); n++; /*记录次数*/ if (n % 5 == 0) /*5个一换行*/ printf("\n"); } else continue; } } } printf("\n"); }
30.
#include "stdafx.h" #include "stdio.h" main() { int i; /*定义基本整型变量i*/ for (i = 100; i < 1000; i++) /*for循环求一百到一千内的所有三位数*/ /*根据题意写出对应的条件*/ if (i % 2 == 1 && i % 3 == 2 && i % 5 == 4 && i % 6 == 5 && i % 7 == 0) printf("the number of the stairs is %d\n", i); /*输出阶梯数*/ return 0; }
31.
#include "stdafx.h" #include "stdio.h" void main() { int i; /*定义整型变量*/ float total=0; /*定义实型变量,并初始化*/ for(i=0;i<5;i++) /*循环*/ total=(total+1000)/(1+0.025); /*累计存款额*/ printf("must save %5.2f at first. \n",total); /*输出存款额*/ }
32.
#include "stdafx.h" #include "stdio.h" int main() { char cString[100]; /*定义保存字符串的数组*/ int iIndex, iWord=1; /*iWord表示单词的个数*/ char cBlank; /*表示空格*/ gets(cString); /*输入字符串*/ if(cString[0]=='\0') /*判断如果字符串为空的情况*/ { printf("There is no char!\n"); } else if(cString[0]==' ') /*判断第一个字符为空格的情况*/ { printf("First char just is a blank!\n"); } else { for(iIndex=0;cString[iIndex]!='\0';iIndex++) /*循环判断每一个字符*/ { cBlank=cString[iIndex]; /*得到数组中的字符元素*/ if(cBlank==' ') /*判断是不是空格*/ { iWord++; /*如果是则加1*/ } } printf("%d\n",iWord); } }
33.
#include "stdafx.h" #include "stdio.h" main() { int i, v0 = 0, v1 = 0, v2 = 0, v3 = 0, n, a[50]; printf("please input the number of electorate:\n"); scanf("%d", &n); /*输入参加选举的人数*/ printf("please input 1or2or3\n"); for (i = 0; i < n; i++) { scanf("%d", &a[i]); /*输入每个人所选的人*/ } for (i = 0; i < n; i++) { if (a[i] == 1) { v1++; /*统计1号候选人的票数*/ } else if (a[i] == 2) { v2++; /*统计2号候选人的票数*/ } else if (a[i] == 3) { v3++; /*统计三号候选人的票数*/ } else { v0++; /*统计无效票数*/ } } printf("The Result:\n"); printf("candidate1:%d\ncandidate2:%d\ncandidate3:%d\nonuser:%d\n",v1,v2,v3,v0); /*将统计的结果输出*/ return 0; }
34.
#include "stdafx.h" #include "stdio.h" #define MAX 50 /*定义MAX为常量50*/ main() { int i,num; /*定义变量i,num为基本整型*/ int Chinese[MAX],Math[MAX],English[MAX]; /*定义数组为基本整型*/ long StudentID[MAX]; /*定义StudentID为长整形*/ float average[MAX]; printf("please input the number of students"); scanf("%d",&num); /*输入学生数*/ printf("Please input a StudentID and three scores:\n"); printf(" StudentID Chinese Math English\n"); for( i=0; i<num; i++ ) /*根据输入的学生数量控制循环次数*/ { printf("No.%d>",i+1); scanf("%ld%d%d%d",&StudentID[i],&Chinese[i],&Math[i],&English[i]); /*依次输入学号及语文,数学,英语成绩*/ average[i] = (float)(Chinese[i]+Math[i]+English[i])/3; /*计算出平均成绩*/ } puts("\nStudentNum Chinese Math English Average"); for( i=0; i<num; i++ ) /*for循环将每个学生的成绩信息输出*/ { printf("%8ld %8d %8d %8d %8.2f\n",StudentID[i],Chinese[i],Math[i],English[i],average[i]); } return 0; }
35.
#include "stdafx.h" #include "stdio.h" #include <string.h> main() { int i, j = 1, n; float a[100], b[100], sum = 0; printf("\nEnter the number of players:\n"); scanf("%d", &n); /*从键盘中输入选手的人数*/ for (i = 1; i <= n; i++) { printf("now player %d\n", i); printf("please input score:\n"); for (; j < 5 *n + 1; j++) { scanf("%f", &a[j]); /*输入5个裁判每个裁判所给的分数*/ sum += a[j]; /*求出总份数*/ if (j % 5 == 0) /*一位选手有5个裁判给打分*/ { break; } } b[i] = sum; /*将每个选手的总分存到数组b中*/ sum = 0; /*将总分重新置0*/ j++; /*j自加*/ } j = 1; printf("player judgeA judgeB judgeC judgeD judgeE total\n"); for (i = 1; i <= n; i++) { printf("player %d", i); /*输出几号选手*/ for (; j < 5 *n + 1; j++) { printf("%8.1f", a[j]); /*输出裁判给每个选手对应的分数*/ if (j % 5 == 0) { break; } } printf("%8.1f\n", b[i]); /*输出每个选手所得的总成绩*/ j++; } return 0; }
36.
#include "stdafx.h" #include <string.h> main() { int i,j,x=1,y=3,a[6][6]={0}; /*因为数组下标要用1到5,所以数组长度是6*/ for(i=1;i<=25;i++) { a[x][y] =i; /*将1到25所有数存到存到数组相应位置*/ if(x==1&&y==5) { x=x+1; /*当上一个数是第1行第五列时,下一个数放在它的下一行*/ continue; /*结束本次循环*/ } if(x==1) /*当上一个数是是第1行时,则下一个数行数是5*/ x=5; else x--; /*否则行数减1*/ if(y==5) /*当上一个数列数是第5列时,则下一个数列数是1*/ y=1; else y++; /*否则列数加1*/ if(a[x][y]!=0) /*判断经过上面步骤确定的位置上是否有非零数*/ { x=x+2; /*表达式为真则行数加2列数减1*/ y=y-1; } } for(i=1;i<=5;i++) /*将二维数组输出*/ { for(j=1;j<=5;j++) printf("%4d",a[i][j]); printf("\n"); /*每输出一行回车*/ } }
37.
#include "stdafx.h" #include "stdio.h" int age(int n) /*自定义函数age*/ { int f; if(n==1) f=10; /*当n等于1时,f等于10*/ else f=age(n-1)+2; /*递归调用age函数*/ return f; /*将f值返回*/ } main() { int i,j; /*定义变量i,j为基本整型*/ printf("Do you want to know whose age?please input:\n"); scanf("%d",&i); /*输入i的值*/ j=age(i); /*调用函数age求年龄*/ printf("the age is %d",j); /*将求出的年龄输出*/ printf("\n"); }
38.
#include "stdafx.h" #include "stdio.h" int sub(int n) /*定义函数递归求鱼的总数*/ { if (n == 1) /*当n等于1时递归结束*/ { static int i = 0; do { i++; } while (i % 5 != 0); return (i + 1); /*5人平分后多出一条*/ } else { int t; do { t = sub(n - 1); } while (t % 4 != 0); return (t / 4 * 5+1); } } main() { int total; total=sub(5); /*调用递归函数*/ printf("the total number of fish is %d\n",total); return 0; }
39.
#include "stdafx.h" #include "stdio.h" int gys(int x,int y) /*定义求最大公约数函数*/ { return y?gys(y,x%y):x; /*递归调用gys,利用条件语句返回最大公约数*/ } int gbs(int x,int y) /*定义求最小公倍数函数*/ { return x/gys(x,y)*y; } void yuefen(int fz,int fm) /*定义约分函数*/ { int s=gys(fz,fm); fz/=s; fm/=s; printf("the result is %d/%d\n",fz,fm); } void add(int a,int b,int c,int d) /*定义加法函数*/ { int u1,u2,v=gbs(b,d),fz1,fm1; u1=v/b*a; u2=v/d*c; fz1=u1+u2; fm1=v; yuefen(fz1,fm1); } void mul(int a,int b,int c,int d) /*定义乘法函数*/ { int u1,u2; u1=a*c; u2=b*d; yuefen(u1,u2); } void sub(int a,int b,int c,int d) /*定义减法函数*/ { int u1,u2,v=gbs(b,d),fz1,fm1; u1=v/b*a; u2=v/d*c; fz1=u1-u2; fm1=v; yuefen(fz1,fm1); } void div(int a,int b,int c,int d) /*定义除法函数*/ { int u1,u2; u1=a*d; u2=b*c; yuefen(u1,u2); } void main() { char op; int a,b,c,d; scanf("%ld,%ld,%c,%ld,%ld",&a,&b,&op,&c,&d); switch(op) /*根据输入的符号选择不同函数的调用*/ { case '+':add(a,b,c,d);break; /*调用加法函数*/ case '*':mul(a,b,c,d);break; /*调用乘法函数*/ case '-':sub(a,b,c,d);break; /*调用减法函数*/ case '/':div(a,b,c,d);break; /*调用除法函数*/ } }
40.
#include "stdafx.h" #include<stdio.h> #include<string.h> void main() { char a[100], b[100], c[200], *p; int i = 0, j = 0, k = 0; printf("please input string a:\n"); scanf("%s", a); /*输入字符串1放入a数组中*/ printf("please input string b:\n"); scanf("%s", b); /*输入字符串2放入b数组中*/ while (a[i] != '\0' && b[j] != '\0') { if (a[i] < b[j]) /*判断a中字符是否小于b中字符*/ { c[k] = a[i]; /*如果小于,将a中字符放到数组c中*/ i++; /*i自加*/ } else { c[k] = b[j]; /*如不小于,将b中字符放到c中*/ j++; /*j自加*/ } k++; /*k自加*/ } c[k] = '\0'; /*将两个字符串合并到c中后加结束符*/ if (a[i] == '\0') /*判断a中字符是否全都复制到c中*/ p = b + j; /*p指向数组b中未复制到c的位置*/ else p = a + i; /*p指向数组a中未复制到c的位置*/ strcat(c, p); /*将p指向位置开始的字符串连接到c中*/ puts(c); /*将c输出*/ }
41.
#include "stdafx.h" #include<stdio.h> #include<string.h> #include <windows.h> char* insert (char s[], char t[], int i) /*自定义函数insert*/ { char string[100]; /*定义数组string作为中间变量*/ if ( i < 0||i > (int)strlen (s) ) /*当i超出输入字符串的长度将输出error*/ { printf ( "error!!\n"); exit (1); } if (!strlen (s)) strcpy (s, t); /*若s数组长度为0,则直接将t数组内容复制到s中*/ else if (strlen (t)) /*若长度不为空,执行以下语句*/ { strncpy (string,s,i); /*将s数组中的前i个字符复制到string中*/ string[i]='\0'; strcat (string,t) ; /*将t中字符串连接到string*/ strcat (string,(s+i)); /*将s中剩余字符串连接到string*/ strcpy (s,string); /*将string中字符串复制到s中*/ return s; /*返回值为s*/ } } void main () { char str1[100],str2[100]; /*定义str1,str2两个字符型数组*/ int position; /*定义变量position为基本整型*/ printf("please input str1:\n"); gets(str1); /*gets函数获得第一个字符串*/ printf("please input str2:\n"); gets(str2); /*gets函数获得第二个字符串*/ printf("please input position:\n"); scanf("%d",&position); /*输入字符串二插入字符串一的位置*/ insert(str1,str2,position); /*调用insert函数*/ puts(str1); /*输出最终得到的字符串*/ }
42.
#include "stdafx.h" #include "stdio.h" float average(float array[],int n) /*自定义求平均身高函数*/ { int i; float aver,sum=0; for(i=0;i<n;i++) sum+=array[i]; /*用for语句实现sum累加求和*/ aver=sum/n; /*总和除以人数求出平均值*/ return(aver); /*返回平均值*/ } int main() { float average(float array[],int n); /*函数声明*/ float height[100],aver; int i,n; printf("请输入学生的数量:\n"); scanf("%d",&n); /*输入学生数量*/ printf("请输入学生们的身高:\n"); for(i=0;i<n;i++) scanf("%f",&height[i]); /*逐个输入学生的身高*/ printf("\n"); aver=average(height,n); /*调用average函数求出平均身高*/ printf("学生的平均身高为:%6.2f\n",aver); /*将平均身高输出*/ return 0; }
43.
#include "stdafx.h" #include "stdio.h" #define swap(a,b) {int c;c=a;a=b;b=c;}/*定义一个带参的宏swap*/ main() { int i,j,a[10],b[10];/*定义数组及变量为基本整型*/ printf("please input array a:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]);/*输入一组数据存到数组a中*/ printf("please input array b:\n"); for(j=0;j<10;j++) scanf("%d",&b[j]);/*输入一组数据存到数组b中*/ printf("\nthe array a is:\n"); for(i=0;i<10;i++) printf("%d,",a[i]);/*输出数组a中的内容*/ printf("\nthe array b is:\n"); for(j=0;j<10;j++) printf("%d,",b[j]);/*输出数组b中的内容*/ for(i=0;i<10;i++) swap(a[i],b[i]);/*实现数组a与数组b对应值互换*/ printf("\nNow the array a is:\n"); for(i=0;i<10;i++) printf("%d,",a[i]);/*输出互换后数组a中的内容*/ printf("\nNow the array b is:\n"); for(j=0;j<10;j++) printf("%d,",b[j]);/*输出互换后数组b中的内容*/ }