您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子科大C语言实验3答案
第七章第2题#includestdio.hintmain(void){inti=1;charn='\n';/***使程序开始时直接运行,存储用户输入的信息***/printf(Thisprogramprintsatableofsquares.\n);while(n=='\n'){for(i;;i++){printf(%10d%10d\n,i,i*i);if(0==i%24){i++;break;/***跳出for循环,进行判断***/}}n=getchar();/***用户输入的信息***/}return0;}第七章第7题/***************************************************************************************对用户输入的两个分数进行加、减、乘、除运算(在两个分数之间输入+、-、*或/符号****************************************************************************************/#includestdio.hintmin(intx,inty){returnxy?x:y;}intmain(void){intm1,n1,m2,n2,m3,n3;/*m为分子,n为分母*/inti,n;chars;/*s用于确定运算符号*/printf(Entertwonumberswithasymbolbetweenthem:);scanf(%d/%d%c%d/%d,&m1,&n1,&s,&m2,&n2);switch(s){case'+':{m3=m1*n2+m2*n1;n3=n1*n2;}break;case'-':{m3=m1*n2-m2*n1;n3=n1*n2;}break;case'*':{m3=m1*m2;n3=n1*n2;}break;case'/':{m3=m1*n2;n3=m2*n1;}break;}n=min(m3,n3);for(i=2;i=n;i++){if((m3%i==0)&&(n3%i==0)){m3=m3/i;n3=n3/i;i=1;}n=min(m3,n3);}/*化简计算结果*/printf(Theresultis:);if(m3%n3==0)printf(%d,m3/n3);elseprintf(%d/%d\n,m3,n3);return0;}第七章第10题/***统计句子中元音字母的个数***/#includestdio.hintmain(void){inti=0;charsentence;printf(Enterasentence:);do{sentence=getchar();switch(sentence)/***判断字母是否为元音字母***/{case'a':case'e':case'i':case'o':case'u':case'A':case'E':case'I':case'O':case'U':i++;break;default:;break;}}while(sentence!='\n');/***输入回车时结束判断***/printf(Yoursentencecontains%dvowels,i);return0;}第七章第13题/***这个程序用于计算句子的平均词长***/#includestdio.hintmain(void){inti=0,j=0;chars;/*存储每个字母*/floatlength;printf(Enterasentence:);s=getchar();while(s!='\n'){if(s=='')j++;elsei++;s=getchar();}length=(float)i/(j+1);printf(Averagewordlength:%.1f\n,length);return0;}第七章第14题/****牛顿迭代法求平方根***/#includestdio.hintmain(void){inti;floatn,j=4.0;printf(Enterspositivenumber:);scanf(%f,&n);for(i=0;i=5;i++)/*迭代次数越多精确度越大*/j=(j+n/j)/2.0;/*牛顿迭代法核心算法*/printf(Squareroot:%f\n,j);return0;}第八章1、2、3合编/**********************************************************1、repdigit.c修改版***2、显示哪些数字有重复***3、显示每个数字在数中出现的次数***4、用户可以录入多个数进行重复数字的判断,用户录入***的数小于或等于0时程序结束********************************************************/#includestdio.hintmain(void){intdigit_seen[10]={0};/*把数组初始化为全0*/intdigit,re[10]={1,0};/*第一个数为1,其余为0*/inti,ex;longn,m;inttimes[10]={0};/*用于确定次数*/printf(Enteranumber:);scanf(%ld,&n);while(n0){intdigit_seen[10]={0};/*每次循环之前必须初始化这个数组,否则会出错,这种初始化表示其他的也是false*/intre[10]={1,0};inttimes[10]={0};printf(\nRepeateddigit(s):);m=n;while(n0){digit=n%10;if(re[digit]!=digit)/*判断是否重复两次及以上*/{if(digit_seen[digit]){printf(%d,digit);digit_seen[digit]=0;re[digit]=digit;/*用于判断是否重复两次以上*/n/=10;continue;/*跳到循环结束之前*/}}digit_seen[digit]=1;n/=10;}if(re[digit]==0)/*此处用于判断是否进入是否为不重复的数的确定环节*/{for(i=9;i=1;i--){if(re[i]==0)/*用于是否为不重复数的确定*/ex=0;elseex=1;}if(!ex&&re[0]==1)printf(Norepeateddigit);}printf(\n\n);n=m;while(n0){digit=n%10;if(digit_seen[digit])/*判断是否重复*/times[digit]++;elsetimes[digit]=1;digit_seen[digit]=1;n/=10;}printf(Digit:);for(i=0;i=9;i++)printf(%d,i);/*输出数字1~9*/printf(\nOccurrences:);for(i=0;i=9;i++)printf(%d,times[i]);/*输出数字1~9出现的次数*/printf(\n\n);printf(Enteranumber:);scanf(%ld,&n);}printf(输入的数字不大于零,程序结束);return0;}第八章第7题/***读取一个5x5整数数组,然后显示出每行的和与每列的和***/#includestdio.hintmain(void){inti,j;intsquare[5][5];/*5*5方阵*/introw_totals=0,column_totals=0;for(i=0;i5;i++){printf(Enterrow%d:,i+1);/*每行标题*/for(j=0;j5;j++)scanf(%d,&square[i][j]);/*必须输入五个数字再回车,否则程序会出错*/}printf(\nRowtotals:);for(i=0;i5;i++){row_totals=0;for(j=0;j5;j++)row_totals+=square[i][j];printf(%d,row_totals);}printf(\nColumntotals:);for(i=0;i5;i++){column_totals=0;for(j=0;j5;j++)column_totals+=square[j][i];printf(%d,column_totals);}return0;}第八章第8题/***提示用户输入每个学生5门测验的成绩,一共有五个学生。***计算每个学生的总分和平均分,以及每门测验的平均分、高分、低分***/#includestdio.hvoidswap(int*a,int*b)/**定义交换函数**/{*a=*a+*b;*b=*a-*b;*a=*a-*b;}intmain(void){inti,j,k;intsquare[5][5];introw_totals=0,column_totals=0;for(i=0;i5;i++){printf(学生%d:,i+1);for(j=0;j5;j++)scanf(%d,&square[i][j]);/*必须输入五个数字再回车,否则程序会出错*/}printf(\n学生总分:);for(i=0;i5;i++){row_totals=0;for(j=0;j5;j++)row_totals+=square[i][j];printf(%d,row_totals);}printf(\n学生平均分:);for(i=0;i5;i++){row_totals=0;for(j=0;j5;j++)row_totals+=square[i][j];printf(%.2f,row_totals/5.0);}printf(\n科目平均分:);for(i=0;i5;i++){column_totals=0;for(j=0;j5;j++)column_totals+=square[j][i];printf(%.2f,column_totals/5.0);}for(j=0;j5;j++){for(i=3;i=0;i--){for(k=0;k=i;k++){if(square[k][j]square[k+1][j])swap(&square[k][j],&square[k+1][j]);}}}/**确定最高分、最低分核心算法**/printf(\n科目最高分:);for(j=0;j5;j++)printf(%d,square[4][j]);printf(\n科目最低分:);for(j=0;j5;j++)printf(%d,square[0][j]);return0;}第八章第14题/********这个程序用于颠倒句子中单词的顺序********/#includestdio.hintmain(void){inti,j,k;chars[1000],last_s;printf(输入句子,以?或。或!为终止符\n);s[0]=getchar();/*第一个字母用于使程序运行*/for(i=1;s[i-1]!='\n';i++)s[i]=getchar();/*输入句子,以问号,句号,或叹号作为终止符*/last_s=s[i-2];/*存储数组内最后一个字符*/k=i-3;if(k!=-1){for(i=k;i=0;i--){if(s[i]==''||s[i]==','||i==0){if(s[i]==''||s[i]==',')j=i+1;elseif(i==0)j=i;for(j;j=k;j++)putchar(s[j]);if(i!=0)putchar(s[i]);k=i-1;}}}/***从后至前打印单词,单词以空格或逗号作为判断标志***/putchar(last_s
本文标题:电子科大C语言实验3答案
链接地址:https://www.777doc.com/doc-2211126 .html