首页 C语言实训

C语言实训

举报
开通vip

C语言实训活动二: (1)编写一个程序实现如下功能:一个整型数组有10个元素,删除所有值为n的元素。 要求: ① 主函数完成n的输入,数组元素输入以及删除后数组元素的输出。 ② 删除功能用子函数完成。 [代码] #include int m; void del_element(int num[],int n); void main() { int num[10]; int i,n; m=10; printf("\nInput array num:\n"); for(i=0;i float score[N][M]; /*全局...

C语言实训
活动二: (1)编写一个程序实现如下功能:一个整型数组有10个元素,删除所有值为n的元素。 要求: ① 主函数完成n的输入,数组元素输入以及删除后数组元素的输出。 ② 删除功能用子函数完成。 [代码] #include int m; void del_element(int num[],int n); void main() { int num[10]; int i,n; m=10; printf("\nInput array num:\n"); for(i=0;i<10;i++) scanf("%d",&num[i]); printf("please input n\n"); scanf("%d",&n); del_element(num,n); for(i=0;i float score[N][M]; /*全局数组*/ float a_stu[N],a_cour[M]; /*全局数组*/ int r,c; /*全局变量*/ void input_stu(void) /*输入10个学生成绩的函数*/ { int i,j; for (i=0;ihigh) { high=score[i][j]; r=i+1; /*数组行号i从0开始,学生号r从1开始,所以r=i+1*/ c=j+1; /*数组列号j从0开始,课程号c从1开始,所以c=j+1*/ } return(high); } main() { int i,j; float h; input_stu(); /*函数调用,输入10个学生成绩*/ aver_stu(); /*函数调用,计算10个学生平均成绩*/ aver_cour(); /*函数调用,计算5门课程平均成绩*/ printf("\n NO. cour1 cour2 cour3 cour4 cour5 ave"); for (i=0;i 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 :仍用一个变量word来判断是否是单词的开始,是单词开始则令word=1,同时统计单词的字符数变量num加1;若当前字符=空格,或=“.”或=“,”则令word=0,此时单词结束,判断刚统计的单词的长度num是否大于原来最长单词的长度max,是则令max=num,num再置0,准备统计下一个单词的长度; 若当前字符≠空格,或≠“.”,或≠“,”,前一个字符为空格(即word=0),则表示出现新的单词,令word=1; 若当前字符≠空格,或≠“.”,或≠“,”,无论前一个字符是否为空格,都表示在单词中,num累加。 #include #include "string.h" main() { char str[81],maxstr[20],s[20],c; int i,j,word=0,num=0,max=0; printf("Enter the string\n"); gets(str); /*输入一行正文*/ i=0; while((c=str[i])!='\0') { if(c==' '||c=='.'||c==',') /*单词结束*/ { word=0; s[num]=’\0’; puts(s); /*输出各个单词*/ if(num>max) { max=num; /*若超过最大值,将num赋值给max*/ strcpy(maxs,s); /*单词复制到maxs数组中*/ } num=0; /*num重新初始化为0,统计下一个单词的长度*/ } else if(word==0) /*新的单词开始*/ { word=1; s[num]=c;num++; } else { s[num]=c;num++; } /*在单词中*/ i++; } printf("maxword=%s,maxlen=%d\n",maxs,max); } 程序运行结果如图4-34所示。 程序运行结果 (4)编写一个程序实现如下功能:有8位裁判为1个运动员打分,请计算并输出去掉一个最高分和一个最低分后这个运动员的平均得分以及所评分最接近平均分的裁判员号。裁判员号及其所打分数从键盘输入,假设裁判员号为整数,所打分数为实数。 #include #include main() {float score[8],ave,max,min,sum=0,min1; int i,m,k; for(i=0;i<8;i++) {printf("%d号裁判员打分为:",i+1); scanf("%f",&score[i]); } for(i=0;i<8;i++) {if(i==0) {max=score[0];min=score[0];} else {if(maxscore[i]) min=score[i];} } for(i=0;i<8;i++) {if(score[i]!=max&&score[i]!=min) sum+=score[i]; } ave=sum/6; printf("运动员平均得分%f\n",ave); min1=fabs(ave-score[0]); k=0; for(i=1 ;i<8 ;i++) { m=fabs(ave-score[i]); if(min1>m) { min1=m;k=i;} } printf("所评分最接近平均分的裁判员号%d\n",k+1); } (5)编写一个程序实现如下功能:从键盘输入字符(最多为80个),遇到回车键输入结束,将输入的字符串按奇偶位置拆分,奇数位上的字符在前,偶数位上的字符在后,重新组成新的字符串输出,例如输入: ab12cd3456fg,则经过程序处理后输出: a1c35fb2d46g 。 #include #include main() { char s[81],ch; int i,j,len,k; gets(s);len=strlen(s); for( i =0,j=0; i < len; i+=2 ) { ch=s[i]; for(k=i;k>j;k--) s[k]=s[k-1]; s[j]=ch; j++; } printf("%s\n",s ); } (6)功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例): 1)输入n和n个成绩(成绩为浮点数类型,数组名记为a,假设1≤n≤50); 2)计算并输出成绩的累加和(记为sum)与平均成绩(记为ave),将≥ave的成绩归为A档,将<ave的成绩归为B档; 3)分别统计A、B两档的人数,计算在总人数中的比率; 4)求出A档学生的最低分和B档学生的最高分,它们与平均成绩的差值; 5)将上述结果输出到文本文件“X42.TXT”中。 运行示例: 输入:9 55.5 99.5 50.0 90.0 88 59.5 48 60 78.0 输出: Sum=628.5, Ave=69.8 A: 4,44.4% B: 5,55.6% MinA: 78.0,+8.2 MaxB: 60.0,-9.8 运行后文件 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 : Sum=628.5, Ave=69.8 A: 4,44.4% B: 5,55.6% MinA: 78.0,+8.2 MaxB: 60.0,-9.8 说明:输入的第1个数表示学生人数(n=9),接着输入的9个成绩中,累加和为628.5(所有小数均保留一位小数输出),平均分为69.8分;平均分以上(A档)有4人,占44.4%,平均分以下(B档)有5人,占55.6%;A档的最低分为78分,超出平均分8.2分,B档的最高分为60分,距离平均分还有9.8分的差距。 #include #include void input(float a[],int n) /*input the score of students*/ { int i; printf("plese input %d students' score.\n",n); for(i=0;i=aver) { b[j++]=a[i]; /*b is the students whose score are over average,named A*/ cout++; } else c[k++]=a[i]; /*c is the students whose score is lower tha average,named B*/ return cout; } float maxb(float a[],int n) /*find the maximum score in grade B*/ { float max; int i; max=a[0]; for(i=1;i=max) max=a[i]; return max; } float mina(float a[],int n) /*find the minimum score in grade A*/ { int i; float min; min=a[0]; for(i=1;i 步骤 新产品开发流程的步骤课题研究的五个步骤成本核算步骤微型课题研究步骤数控铣床操作步骤 验证一个正整数对是否符合特定的编码 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf : 1)输入正整数a与b; 2)计算a的所有不同的质因子(包括1)之积,记为s; 3)如果s等于b,则通过验证,输出“OK”,否则输出“Err”。 输出格式参见以下示例。 运行示例1: 输入:588 42 输出:588: 1*2*3*7=42, OK 说明:输入数为588(对应a)和42(对应b),588的质因子为1、2、3和7,其累乘结果为42(对应s),由s等于b(均为42),输出OK。 运行示例2: 输入:17 55 输出:17: 1*17=17, Err(17!=55) 说明:质因子为1和17,乘积仍为17,不等于b(55),输出Err,及不通过原因“(17!=55)”。 #include #include main() { void input(int *p1,int *p2); int calc(int a,int zs[10]); void output(int,int,int,int zs[]); int a,b,isb,zs[10]={0}; input(&a,&b); isb=calc(a,zs); output(a,b,isb,zs); } void input(int *p1,int *p2) /*input a and b*/ { printf("input a: "); scanf("%d",p1); printf("input b: "); scanf("%d",p2); } int calc(int a,int zs[10]) /*calculate the quality factor of a,and save them into zs*/ { int i=2,c=0,s=1; while(i<=a) { if(a%i==0) { if(zs[c]!=i) { s*=i; c++; } a/=i; zs[c]=i; } else i++; } return s; } void output(int a,int b,int isb,int zs[10]) /*out put the result*/ { int i; printf("%d: 1",a); for(i=1;zs[i]!=0;i++) printf("*%d",zs[i]); printf("=%d, ",isb); if(isb==b)printf("OK\n"); else printf("Err(%d!=%d)\n",isb,b); } //(6)编写一个程序实现如下功能:有个数组a[100]存放了100个数,这100个数取自1-99,且只有两个相同的数,剩下的98个数不同,编程找出相同的那个数的值。 #include main() { int num[100],f=0; int i,j,k; for( i =0;i<100;i++) scanf("%d",&num[i]); for(i=0;i<100-1&&f==0;i++) for(j=i+1;j<100;j++) if(num[i]==num[j]) { f=1;break;} printf("%d\n",num[j]); } //(7)编写一个程序实现如下功能:从键盘输入一个正数,以浮点数的格式显示原始数据,再将其保留2位小数,并对第三位进行四舍五入后输出。 例如:输入数值为8.32433,则输出8.32;输入数值为8.32533,则输出8.33。 void fun6() { float sswr(double h); float num, i; system("cls"); printf("四舍五入保留2位小数\n"); printf("-------------------------\n"); printf("输入一个至少有三位小数的浮点数:"); scanf("%f", &num); printf("原始数据是:%f\n", num); num=sswr(num); printf("四舍五入后的值为: %.2f\n", num); printf("----------------------------\n"); printf("结束,按任意键回到主菜单......"); getch(); } float sswr(double h) { float ge; ge=(int)((h*100)+0.5)/100.0; return ge; } (8)编写一个程序实现如下功能:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。 例:若程序执行时,输入字符串为:Shanghai Dianji University,从键盘上输入字符:s,则输出后变为:Shanghai Dianji Univerity,如果输入的字符串不存在,则字符串照原样输出。 void delchar(char s[], char ch) { int i, j; for(i=0,j=0;s[i];i++) if(s[i]!=ch) s[j++]=s[i];//删除字符,对连续多个要删除的字符很有效 s[j]=0;//修改字符串长度 } void fun7() { char str[80]; char ch; system("cls"); printf("删除字符串中指定字符\n"); printf("-------------------------\n"); printf("请输入字符串:"); flushall(); gets(str); printf("输入欲删除的字符:"); ch=getchar(); delchar(str,ch); printf("删除后的字符串为:"); puts(str); printf("----------------------------\n"); printf("结束,按任意键回到主菜单......"); getch(); } (9)编写一个函数void fun(char a[],int k,int n),其功能是:删除字符串中指定下标开始的n 个字符。其中,a指向字符串,k中存放指定的下标。 例如,字符串内容为:Hellollo World!,k中值为:5,n中的值为:3,则调用该函数的结果为:Hello World!。 void delstr2( char *a, int k, int n) { int m=strlen(a), i; for(i=k+n; i int f(float a[][5],int m,int n) { int count=0,i,j; float s1=0,s2=0; for(i=0;i0) s2+=a[i][j]; else count++; printf("正数的和为:%f,负数的和为:%f\n",s2,s1); return count; } main() { int i,j,count;float a[4][5]; clrscr(); for(i=0;i<4;i++) for(j=0;j<5;j++) scanf("%f",&a[i][j]); printf("0的个数为:%d\n",f(a,4,5)); } (11)编写一个程序实现如下功能:调用一个名为gm的函数,该函数实现简单的加密。加密方法如下:先定义一张字母加密对照表: 原字母 a b c d e i k , w 加密后字母 d w k , i a b c e 将需要加密的一行文字输入加密程序,程序根据加密表中的对应关系,可以简单地将输入的文字加密输出,对于表中未出现的字符则不加密 (11)参考程序 void gm(char a[],char b[],char c[]) { int i,j; for(i=0;a[i];i++) for(j=0;b[j];j++) if(a[i]==b[j]) { a[i]=c[j]; break; } } main() { char a[80],b[10]="abcdeik,w",c[10]="dwk,iabce"; int i,j; gets(a); gm(a,b,c); puts(a); } (12)编写程序验证以下说法:输入一个4位数,该数个、十、百、千位上的数互不相等,由个、十、百、千位上的数组成一个最大数和一个最小数,最大数-最小数,构成一个新的4位数。反复以上运算,使其最终结果为:6174。 要求如下(下面的函数名为建议函数名): ① 用函数 int IsNumberEqual(int number) 检查输入的整数number各数码是否互不相等,全相等返回值为1否则为0; ② 用函数(void ntos (int number, int c[]) )把四位数整数number各位数码分别存入数组c ③ 用函数( void sort (int a[ ] )对4个元素的数组a排序(升序或降序都可以); ④ 由输入整数分解排序后的数组得到最大值和最小值: int getmaxn(int a[ ]) 返回值为最大值 int getminn(int b[ ]) 返回值为最小值 参考程序 void ntos(); /*函数原型声明*/ int IsNumberEqual(int number) /*判断各个位是否相同*/ { int a[4],i,j; ntos(number,a); for(i=0;i<4-1;i++) { for(j=i+1;j<4&&a[i]==a[j];j++); if(j<4) return 0; } return 1; /*相同返回1*/ } void ntos(int number, int c[]) /*将4位数的各个位放入数组中*/ { int i; for(i=0;i<4;i++) { c[i]=number%10; number=number/10;} } void sort(int a[]) /*将数组的排序*/ { int i,j,temp; for(i=0;i<4-1;i++) for(j=0;j<4-i-1;j++) if(a[j]>a[j+1]) { temp=a[j];a[j]=a[j+1];a[j+1]=temp;} /*降序*/ } int getmaxn(int a[]) /*按从大到小将各个位组成一个最大的4位数*/ { int num,i; num=0; for(i=3;i>=0;i--) num=num*10+a[i]; return num; } int getminn(int b[]) /*按从小到大将各个位组成一个最小的4位数*/ { int num,i; num=0; for(i=0;i<4;i++) num=num*10+b[i]; return num; } main() { int i,j,n,t[4],min,max; printf("input a number(1000~9999) :\n"); scanf("%d",&n); /*输入一个4位的整数*/ while(1) { if(IsNumberEqual(n)==0) { ntos(n,t); sort(t); /*将数分离放入数组中,并调用函数排序*/ max=getmaxn(t);min=getminn(t); /*找最大值和最小值*/ printf("%d - %d =%d\n ",max,min,max-min); /*输出*/ n=max-min; /*求新的4位数*/ if(6174==n) break; /*若等于6174,则退出循环*/ } } } (13)函数 fun 的功能是:计算正整数num的各位上的数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。 */ #include #include long fun (long num) /************found************/ {long k=1; //{ long k; do { k*=num%10 ; /************found************/ num/=10; // num\=10 ; } while(num) ; return (k) ; } main( ) { long n ; clrscr() ; printf("\Please enter a number:") ; scanf("%ld",&n) ; printf("\n%ld\n",fun(n)) ; } (14) 给定程序MODI1.C中函数 fun 的功能是:用插入排序法将n个字符进行排序(降序)。(提示: 插入法排序的思路是:先对数组的头两个元素进行排序, 然后根据前两个元素的情况插入第三个元素,再插入第四个元素…)。 请改正程序中的错误,使它能统计出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序 的结构! */ #define N 81 #include #include void fun(char *aa, int n) { int a ,b,t; for( a = 1; a=0)&&(t>aa[b])) // While((b>=0)&&(t>aa[b])) { aa[b+1]=aa[b]; b--; } /************found************/ aa[b+1]=t; // aa[b+1] = t } } main() { char a[N]; int i; printf("\nEnter a string: ");gets( a); fun(a , strlen(a)); printf("\nThe string: ");puts(a); } (15)3.爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,则最后剩下1阶,若每步跨3阶,则最后剩下2阶,若每步跨5阶,则最后剩下4阶,若每步跨6阶,则最后剩下5阶,只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶? #include main() { int x , find = 0; while (!find) { if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0) { find = 1; x++; } } printf(" x = %d\n", x); } 3.爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,则最后剩下1阶,若每步跨3阶,则最后剩下2阶,若每步跨5阶,则最后剩下4阶,若每步跨6阶,则最后剩下5阶,只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶? #include main() { int x , find = 0;//错误,应该为int x=1,find=0; while (!find) { if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0) { find = 1; x++;//错误,x++;应该放到if语句}的外面 } } printf(" x = %d\n", x); //错误,该语句应放到if语句的里面 } (23) 利用泰勒级数sin(x)≈ 计算sin(x) 的值。要求最后一项的绝对值小于10-5,并统计出此时累加了多少项(x由键盘输入)。 #include #include main() { int n=1,count=1; float x; double sum,term; /*因为位数多,所以定义为双精度 */ printf("Input x: "); scanf("%f", &x); sum=x; term=x; /*赋初值*/ do { term=-term * x * x / ((n + 1) * (n + 2)); sum=sum + term; /*累加 */ n=n+2; count++; }while(fabs(term)>=1e-5); printf("sin(x)=%.1f,count=%d\n",sum,count); } (26)百钱百鸡问题 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡”问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何。 分析:穷举法 cock+hen+chick=100 5*cock+3*hen+chick/3=100 鸡翁、鸡母、鸡雏均为整数 #include main() { int x,y,z; /*定义公鸡、母鸡和雏鸡的未知数*/ for(x=1;x<=100;x++) /*控制循环的三个表达式*/ { for(y=1;y<=100;y++) { z=100-x-y; if(15*x+9*y+z==300) /*方程表达式,求整,将各系数扩大3倍;*/ printf("%8d,%8d,%8d\n",x,y,z); /*输出各种满足条件的组合*/ } } } (27)有一堆鱼,由A、B、C、D、E五人先后进行分配。A第一个到来,他将鱼平分作5份,把多余的一条扔回湖中,拿走自己分好的一份回家去了;B第二个到来,也将鱼平分为5份,扔掉多余的一条,只拿走自己分好的一份;接着C、D、E依次到来,也按同样的方法分鱼。问这堆鱼共有多少条?每个人到来时看到的鱼数是多少条? fish[1]=总鱼数 fish[2]=(fish[1]-1)*4/5 fish[3]=(fish[2]-1)*4/5 fish[4]=(fish[3]-1)*4/5 fish[5]=(fish[4]-1)*4/5 fish[i]=(fish[i-1]-1)*4/5 fish[i-1]=(fish[i])*5/4+1 #include main() { int fish[6]={1,1,1,1,1,1}; int i=0; do { fish[5]=fish[5]+5; for(i=4;i>=1;i--) { if(fish[i+1]%4!=0) break; else fish[i]=fish[i+1]*5/4+1; } }while(i>=1); for(i=1;i<=5;i++) printf("%d\n",fish[i]); } (28)约瑟夫环问题:编号为1,2,3,...,n的n个人按顺时针方向围坐一圈,每人持有一个正整数密码。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针报数,报到m时停止,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计程序求出出列顺序。 解:设整型数组a中保存n个人的密码,对应的人出列后,数组元素置0作为标志。顺时针确定下一个人的方法,可将下标加1,再对n求余。*/ #include #define N 100 main() { int a[100]; int i,j,m,n,k=0; printf("Enter n & m:"); scanf("%d%d",&n,&m); printf("Enter code array :"); for (i=0;i main() {int a,i,aa[4],t; scanf("%d",&a); aa[0]=a%10; aa[1]=a%100/10; aa[2]=a%1000/100; aa[3]=a/1000; for(i=0;i<=3;i++) {aa[i]+=5; aa[i]%=10; } for(i=0;i<=3/2;i++) { t=aa[i]; aa[i]=aa[3-i]; aa[3-i]=t; } for(i=3;i>=0;i--) printf("%d",aa[i]); } (30)将十进制正整数用除16取余法转换为十六进制数输出。 #include main() { int i,x,j,a[20]; while(1) { printf("请输入一个正整数:"); scanf("%d",&x); if(x>0) break; } i=0; while(x!=0) { a[i]=x%16; x=x/16; i++; } for(j=i-1;j>=0;j--) if(a[j]<=9) printf("%d ",a[j]); else if(a[j]<=15) printf("%c ",a[j]+'A'-10); printf("\n"); } (31)从键盘输入一行字符,统计其中有多少单词,假设单词之间以逗号分隔。 (32)从键盘输入一字符串,放在字符数组a中,将字符数组a中下标值为偶数的元素按从小到大排序。 #include #include void main() { char a[80],t,m; int i,j,k; scanf("%s",a); puts(a); k=strlen(a); for(i=0;i<=k-2;i+=2) { m=i; for(j=i+2;j<=k; j+=2 ) if(a[m]>a[j]) m=j; if(m!=i) {t=a[i];a[i]=a[m];a[m]=t;} } puts(a); printf("\n"); } (33)编写程序输出以下杨辉三角形(要求输出10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 … … … … … … #include #include void main() { int i,j,a[10][10]; for(i=0;i<10;i++) { a[i][0]=a[i][i]=1; for(j=1;j #include #include int invert(int a) { int s = 0; while (a > 0) { s = 10*s+ a % 10 ; a /= 10; } return s; } int prime(int a) { int i; for (i = 2; i <= (int)sqrt(a); i++) if ( a % i==0) return 0; return 1; } int main() { int i; for (i =100; i < 1000; i++) if (prime(i)) if (prime( invert(i) )) printf("%5d", i); printf("\n"); return 0; } (37)输入一行数字字符存入字符数组str[80]中,用num[10]中的数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符“0”的个数,用下标为1的元素统计字符“1”出现的次数,……。输出每个奇数字符出现的次数。 #include "stdio.h" void count(char str[], int num[]) { int i=0; while(str[i]!='\0') { switch(str[i]) { case '0': num[0]++; break; case '1': num[1]++; break; case '2': num[2]++; break; case '3': num[3]++; break; case '4': num[4]++; break; case '5': num[5]++; break; case '6': num[6]++; break; case '7': num[7]++; break; case '8': num[8]++; break; case '9': num[9]++; break; } i++; } } void main() { char str[80]; int num[10]={0}, i; printf("请输入一行数字字符:\n"); gets(str); count(str, num); for(i=1; i<10; i+=2) printf("数字串中%d出现的次数为%d\n", i, num[i]); } (38)假设数组a有4行4列的随机整数,计算每行的平均值,保留两位小数,然后输出平均值和每行的最大值。 #include #include #include void main( ) { int a[4][4]; int i,j,s,max; float ave; srand((unsigneD.time(NULL)); /* 以时间作为随机数种子 */ for(i=0;i<4;i++) /* 产生16个随机整数 */ for(j=0;j<4;j++) a[i][j]= rand()%100; printf("output array a:\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%5d",a[i][j]); printf("\n"); } for(i=0;i<4;i++) { s=0; for(j=0;j<4;j++) s=s+a[i][j]; ave=s*1.0/4; printf("aver of line %d is %.2f\n",i+1,ave);} for(i=0;i<4;i++) { max=a[i][0]; for(j=1;j<4;j++) if(a[i][j]>max) max=a[i][j]; printf("max of line %d is %d\n",i+1,max); } } (39)输入一行字符串,分别统计字符串中各元音字母(AEIOU)的个数(不分大小写)。 #include void main() { char a[80]; int n[5]={0,0,0,0,0}; /* 数组n存放各元音字母个数 */ int i; gets(a); for(i=0; a[i]!='\0'; i++) switch(a[i]) { case 'A': case 'a': n[0]++; break; case 'E': case 'e': n[1]++; break; case 'I': case 'i': n[2]++; break; case 'O': case 'o': n[3]++; break; case 'U': case 'u': n[4]++; break; } for(i=0;i<5;i++) printf("%d\n",n[i]); /* 输出各元音字母个数 */ } (40)编写程序计算并输出:1 + 12 + 123 + 1234 + …… 的前n(设0 main() { int n, i; long k, s; scanf( "%d", &n ); s = 0; k = 0; for ( i=1; i<=n; i++ ) { k = 10*k + i; s += k; } printf( "%ld\n", s ); } (41)功能说明:函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。从主函数中输入d和n,调用fun函数,并以sum=XXXXXXX的形式输出结果。 如输入d=3,n=4 则输出:sum=3702 #include /* P129第三版习题6.3 */ int fun(int n,int d) { int i=1; int sn=0,tn=0; while(i<=n) { tn=tn+d; sn=sn+tn; d=d*10; i++; } return sn; } main() { int sum=0,n,d; do { printf("请输入n和d的值,d的值不在1-9之间\n"); scanf("%d%d",&n,&d); if(d<1||d>9) {printf("d的值不在1-9之间,请重新输入"); continue; } break; }while(1); sum=fun(n,d); printf("sum=%d\n",sum); } (42)随机产生N个数,按升序排序,然后在其中查找数据k,若找到,显示查找成功的信息,并将该数据删除;若没有找到,则将数据k插入到这些数中,插入操作后数据仍然有序。 #include #include void main( ) { int a[20],k,i,n,low,high,mid; int point; prin
本文档为【C语言实训】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_291703
暂无简介~
格式:doc
大小:390KB
软件:Word
页数:36
分类:工学
上传时间:2011-09-14
浏览量:54