1、(习题5.7)应准备以下测试数据: 要处理的数为1位正整数; 要处理的数为2位正整数; 要处理的数为3位正整数;除此之外,程序还应当对不合法的输入作必要的处理。例如: 输入负数;输入的数超过3位(如123 4)。 #include void main( ) int num, indiv,ten,hundred, place; printf(请输入一个整数(0-999):); scanf(%dnum); if (num99) place=3; else if (num9) place=2; else place=1;位数:%dn,place); 每位数字为: hundred=num/100; t
2、en=(num-hundred*100)/10; indiv=(num-hundred*100-ten*10); switch(place) case 3: printf(%d,%d,%dn,hundred,ten,indiv);反序数字为:%d%d%dn,indiv,ten,hundred); break; case 2:%d,%dn,ten,indiv); printf(%d%dn,indiv,ten); case 1:,indiv); 3 求输入的十个整数中正数的个数及其平均值.Void main() int i,num=0,a; int sum=0; for(i=0;i10;i+) s
3、canf(a); if(a=0) continue; num+; sum+=a; %d plus integers sum :,num,sum);Mean value:%6.2fn,sum/num); 4.打印出以下图案。 * * * int i,j,k;for (i=0;=4; for(j=0;j=3-i;j+) printf( . for (k=0;k=2*i;k+)*n 做习题7.11 for (i=0; i5; for (j=0;i; printf( for (k=0;* 5 输入10个数并从中找出最大者.#includeint a10,i,max;input 10 numbers:a
4、i);max=a0;for (i=1;if (maxai+1) t=ai; ai=ai+1; ai+1=t;,ai);选择法: int i,j,min,temp,a10;please enter 10 integers: scanf( min=i; for (j=i+1; if (aminaj) min=j; if (min!=i) temp=amin; 把值赋给ai amin=ai; ai=temp; printf ( printf (7. 用二分法查找数值#define N 5void main( ) int high,low,m,x,aN=-2,5,16,18,43;please inp
5、ut x:x);low=0;high=N-1;while (lowam) low=m+1; else high=m-1;if (lowmax) max=aij; row=i; colum=j;max=%d,row=%d,colum=%dn,max,row,colum);9 将两个字符串连接起来,不要用strcat函数。char str180,str240;int i=0,j=0;input string1:%s,str1);input string2:,str2);while(str1i!=0)i+;while(str2j!str1i=str2j; i+;j+;str1i=;nthe new
6、string is:%sn10 . 找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。(习题7.8)#define N 4#define M 5int i,j,max,maxj,aNM,k,flag;please input matrix:N;M;aij);for(i=0; max=ai0; maxj=0;for(j=0;if (aij max=aij; maxj=j;flag=1;for (k=0;if(maxakmaxj) flag=0; continue;if (flag)printf(a%d%d=%dn,i,maxj,max);break;if(!
7、flag)It is not exist!8.5 写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。string.hvoid inverse (char str) int i,j,t; for(i=0,j=strlen(str);strlen(str)/2;i+,j-) t=stri; stri=strj-1; strj-1=t; char str100;please input a string: scanf(,str); inverse (str);inverse string is:例 求三个数中最大数和最小数的差值 int dif(int x,int y,int z)
8、; int max(int x,int y,int z); int min(int x,int y,int z);void main() int a,b,c,d;%d%d%dc); d=dif(a,b,c);Max-Min=%dn,d);int dif(int x,int y,int z) return max(x,y,z)-min(x,y,z);int max(int x,int y,int z) int r; r=xy?x:y; return(rz?r:z);int min(int x,int y,int z) r=x return(ra&cAZ letter+; else if (c= space+; else 09 digit+; else other+;母数:%dn 空格数:%dn 数字数:%dn 其它:,letter,space,digit,other);猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。(习题6.10)int x1,x2,day;x2=1;for(day=9;day0;day-) x1=(x2+1)*2; x2=x1;total=%dn,x1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1