第四版c语言课后答案(谭浩强)_第1页
第四版c语言课后答案(谭浩强)_第2页
第四版c语言课后答案(谭浩强)_第3页
第四版c语言课后答案(谭浩强)_第4页
第四版c语言课后答案(谭浩强)_第5页
已阅读5页,还剩196页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言课后习题答案-第四版-谭浩强(1-7)

第一章

1.#include<stdio.h>

intmain()

{printf(”*************************•

printf(nVeryGood!\n\n");

printf(u**************************\n”);

return0;

)

#include<stdio.h>

intmain()

{inta,b,c,max;

printf(Mpleaseinputa,b,c:\n'*);

scanf(M%d,%d,%dn,&a,&b,&c);

max=a;

if(max<b)

max=b;

if(max<c)

max=c;

printf("Thelargestnumberis%d\n”,max);

return0;

)

第3章

#include<stdio.h>

#include<math.h>

intmain()

{floatp,r,n;

r=0.1;

n=10;

p=pow(l+r,n);

printf(',p=%f\n,',p);

return0;

)

#include<stdio.h>

#include<math.h>

intmain()

{floatr5,r3,r2,r1,r0,p,pI,p2,p3,p4,p5;

p=1000;

r5=0.0585;

r3=0.054;

r2=0.0468;

rl=0.0414;

r0=0.0072;

pl=p*((l+r5)*5);//一次存5年期

p2=p*(l+2*r2)*(l+3*r3);//先存2年期,到期后将本息再存3年期

p3=p*(l+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期

p4=p*pow(1+r1,5);〃存1年期,到期后将本息存再存1年期,连续存5次

p5=p*pow(l+r0/4,4*5);//存活期存款。活期利息每一季度结算一次

printf("pl=%f\n",p1);//输HI按第1方案得到的本息和

printf("p2=%f\n,\p2);//输出按第2方案得到的本息和

printf(Mp3=%f\n",p3);H输出按第3方案得到的本息和

printf("p4=%f\n",p4);//输出按第4方案得到的本息和

printf("p5=%f\n,\p5);//输出按第5方案得到的本息和

return0;

#include<stdio.h>

#include<math.h>

intmain()

{doubler5,r3,r2,rl,rO,p,p1,p2,p3,p4,p5;

p=1000;

r5=0.0585;

r3=0.054;

r2=0.0468;

rl=0.0414;

r0=0.0072;

pl=p*((l+r5)*5);//一次存5年期

p2=p*(l+2*r2)*(l+3*r3);//先存2年期,到期后将本息再存3年期

p3=p*(l+3*r3)*(l+2*r2);〃先存3年期,到期后将本息再存2年期

p4=p*pow(1+r1,5);〃存1年期,到期后将本息存再存1年期,连续存5次

p5=p*pow(1+r0/4,4*5);//存活期存款。活期利息每一季度结算一次

printf(Mpl=%f\nM,p1);H输出按第1方案得到的本息和

printf(Hp2=%f\n",p2);//输出按第2方案得到的本息和

printf("p3=%f\n,\p3);//输出按第3方案得到的本息和

printf(np4=%f\n",p4);H输出按第4方案得到的本息利

printf("p5=%i\nn,p5);//输出按第5方案得到的本息和

return0;

#include<stdio.h>

#include<math.h>

intmain()

{floatr5,r3,r2,r1,rO,p,p1,p2,p3,p4,p5;

p=1000;

r5=0.0585;

r3=0.054;

r2=0.0468;

rl=0.0414;

r0=0.0072;

pl=p*((l+r5)*5);//一次存5年期

p2=p*(l+2*r2)*(l+3*r3);〃先存2年期,到期后将本息再存3年期

p3=p*(l+3*r3)*(l+2*⑵;〃先存3年期,到期后将本息再存2年期

p4=p*pow(l+rl,5);〃存1年期,到期后将本息存再存1年期,连续存5次

p5=p*pow(l+r0/4,4*5);//存活期存款。活期利息每一季度结算一次

printf(,,pl=%10.2f\n',,pl);//输出按第1方案得到的本息和

prmtf(np2=%10.2f\n",p2);//输出按第2方案得到的本息和

printf(np3=%10.2f\nu,p3);//输出按第3方案得到的本息和

printf(',p4=%10.2f\nu,p4);//输出按第4方案得到的本息和

printf(np5=%10.2f\n",p5);//输出按第5方案得到的本息和

return0;

#include<stdio.h>

#include<math.h>

inimain()

{floatd=300000,p=6000,r=0.01,m;

m=log10(p/(p-d*r))/log10(1+r);

printf("m=%6.2f\n",m);

return0;

)

#include<stdio.h>

intmain()

{intcl,c2;

cl=197;

c2=198;

printf("cl=%c,c2=%c\n*',cl,c2);

printf(',cl=%d,c2=%d\n",cl,c2);

return0;

#include<stdio.h>

intmain()

{inta,b;

floatx,y;

charcl,c2;

scanf(na=%db=%d",&a,&b);

scanf("%f%e",&x,&y);

scanf("%c%c,,,&c1,&c2);

printf(Ma=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c\n",a,b,x,y,cl,c2);

return0;

#include<stdio.h>

intmain()

{charcl='C,,c2=,h',c3=,i,,c4=,n\c5=,a,;

cl=cl+4;

c2=c2+4;

c3=c3+4;

c4=c4+4;

c5=c5+4;

printf("passworis%c%c%c%c%c\n",c1,c2,c3,c4,c5);

return0;

)

#include<stdio.h>

intmain()

{floath,r,l,s,sq,vq,vz;

floatpi=3.141526;

printf("请输入圆半径r,圆柱高h:n);

scanf(H%f,%fn,&r,&h);〃要求输入圆半径r和圆柱高h

l=2*pi*r;〃计算圆周长1

s=r*r*pi;〃计算圆面积s

sq=4*pi*r*r;〃计算圆球表面积sq

vq=3.0/4.0*pi*r*r*r;〃计算圆球体积vq

vz=pi*r*r*h;〃计算圆柱体积vz

printf("圆周长为:l=%6.2f\nn,l);

printf("圆面积为:s=%6.2f\nu,s);

printf("圆球表面积为:sq=%6.2f\n",sq);

printf("圆球体积为:v=%6.2f\nu,vq);

printf("圆柱体积为:vz=%6.2f\n",vz);

return0;

#include<stdio.h>

intmain()

(

charcl,c2;

printf("请输入两个字符cl,c2:n);

cl=getchar();

c2=getchar();

printf(”用putchar语句输出结果为

putchar(cl);

putchar(c2);

printf("\n");

printf("用printf语句输出结果为

printf(M%c%c\n",cl,c2);

return0;

)

#include<stdio.h>

intmain()

(

intcl,c2;〃整型定义

printf("请输入两个整数cl,c2:");

scanf("%d,%d",&cI,&c2);

printf("按字符输出结果:\n");

printf(M%c,%c\n",cl,c2);

printf("按ASCII码输出结果为:\n");

printf(M%d,%d\n",cl,c2);

return0;

}#include<stdio.h>

intmain()

(

charcl,c2;〃定义字符型变量

intil,i2;〃定义整型变量

printf("请输入两个字符cl,c2:");

scanf("%c,%c",&cl,&c2);

il=cl;//赋值给整型变量

i2=c2;

printf("按字符输出结果An”);

printf(M%c,%c\n",i1,i2);

printf("按整数输出结果果)

printf(n%d,%d\nn,cl,c2);

return0;

}#include<stdio.h>

intmain()

charcl,c2;〃定义为字符型

inti1,i2;〃定义为整型

printf(”请输入两个整数il,i2:");

scanf(n%d,%d",&il,&i2);

c1=i1;〃将整数赋值给字符变量

c2=i2;

printf("按字符输出结果:\n");

printf(',%c,%c\n,',cl,c2);

printf("按整数输出结果

printf(n%d,%d\nn,cl,c2);

return0;

第四章

#include<stdio.h>

intmain()

(

inta,b,c;

printf("请输入三个整数

scanf("%d,%d,%d",&a,&b,&c);

if(a<b)

if(b<c)

printf("max=%d\nn,c);

else

printf("max=%d\nn,b);

elseif(a<c)

printf(Hmax=%d\n",c);

else

printf("max=%d\nM,a);

return0;

}#include<stdio.h>

intmain()

{inta,b,c,temp,max;

printf(”请输入三个整数:");

scanf(n%d,%d,%d",&a,&b,&c);

temp=(a>b)?a:b;/*将a和b中的大者存入temp中*/

max=(temp>c)?temp:c;/*将a和b中的大者与c比较,取最大者刃

printf("三个整数的最大数是%d\n”,max);

return0;

}#include<stdio.h>

#include<math.h>

#defineM1000

intmain()

(

inti,k;

printf("请输入一个小于%d的整数

scanf(n%dn,&i);

while(i>M)

{printf("输入的数不符合要求,请重新输入一个小于%(1的整数

scanf(n%d'\&i);

)

k=sqrt(i);

printf(n%d的平方根的整数部分是:%d\n",i,k);

return0;

#include<stdio.h>

#include<math.h>

#defineM1000

intmain()

inti,k;

printf("请输入一个小于%d的整数

scanf(n%d",&i);

if(i>M)

{printf("输入的数不符合要求,请重新输入一个小于%(1的整数

scanf("%dH,&i);

)

k=sqrt(i);

printf(M%d的平方根的整数部分是:%d\n';i,k);

return0;

)

#include<stdio.h>

intmain()

{intx,y;

printf("输入x:M);

scanf("%d”,&x);

if(x<l)/*x<l*/

{y=x;

printf(Hx=%3d,y=x=%d\n",x,y);

elseif(x<10)/*l=<x<10*/

{y=2*x-l;

printf("x=%d,y=2*x-1=%d\n",x,y);

)

else/*x>=10*/

{y=3*x-l1;

printf("x=%d,y=3*x-ll=%d\n",x,y);

)

return0;

}#include<stdio.h>

intmain()

(

intx,y;

printf(nenterx:n);

scanf("%dH,&x);

y=-i;

if(x!=0)

if(x>0)

y=l;

else

y=o;

printf("x=%d,y=%d\n",x,y);

return0;

#include<stdio.h>

intmain()

(

intx,y;

printf("pleaseenterx:");

scanf("%d",&x);

y=o;

if(x>=0)

if(x>0)y=1;

elsey=-l;

printf(,'x=%d,y=%d\n',,x,y);

return0;

)

#include<stdio.h>

intmain()

{floatscore;

chargrade;

printf(”请输入学生成绩

scanf(n%f",&score);

while(score>100llscore<0)

{printf(H\n输入有误,请重输)

scanf("%f',&score);

)

switch((int)(score/10))

{case10:

case9:grade=,A,;break;

case8:grade='B*;break;

case7:grade=*C';break;

case6:grade=rD';break;

case5:

case4:

case3:

case2:

case1:

case0:grade='E';

)

printf("成绩是%5.If,相应的等级是%c\n'score,grade);

return0;

)

#include<stdio.h>

#include<math.h>

intmain()

intnum,indiv,ten,hundred,thousand,ten_thousand,place;〃分别代表个位,十位,百位,千

位,万位和位数

printf("请输入一个整数(0-99999)门);

scanf("%d”,&num);

if(num>9999)

place=5;

elseif(num>999)

place=4;

elseif(num>99)

place=3;

elseif(num>9)

place=2;

elseplace=l;

printf("位数:%d\n",place);

printf("每位数字为:");

ten_thousand=num/10000;

thousand=(int)(num-ten_thousand*10000)/1000;

hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;

ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;

indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);

switch(place)

{case5:printf(n%d,%d,%d,%d,%du,ten_thousand,thousand,hundred,ten,indiv);

printf(H\n反序数字为

printf(n%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);

break;

case4:printf(H%d,%d,%d,%d'\thousand,hundred,ten,indiv);

printf(n\n反序数字为:");

printf(',%d%d%d%d\n,\indiv,ten,hundred,thousand);

break;

case3:printf("%d,%d,%dn,hundred,ten,indiv);

printf(H\n反序数字为:");

printf(n%d%d%d\n",indiv,ten,hundred);

break;

case2:printf(n%d,%dn,ten,indiv);

printf("\n反序数字为:");

printf(n%d%d\nn,indiv,ten);

break;

case1:printf(',%d^^,indiv);

printf(H\n反序数字为

printf(,'%d\n,',indiv);

break;

)

return0;

}#include<stdio.h>

intmain()

inti;

doublebonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+l00000*0.05;

bon6=bon4+100000*0.03;

bon10=bon6+400000*0.015;

printf(”请输入利润i:");

scanf(n%d';&i);

if(i<=100000)

bonus=i*0.1;

elseif(i<=200000)

bonus=bonl+(i-l00000)*0.075;

elseif(i<=400000)

bonus=bon2+(i-200000)*0.05;

elseif(i<=600000)

bonus=bon4+(i-400000)*0.03;

elseif(i<=1000000)

bonus=bon6+(i-600000)*0.015;

else

bonus=bon10+(i-l000000)*0.01;

printf("奖金是:%10.2f\n",bonus);

return0;

)

#include<stdio.h>

intmain()

(

inti;

doublebonus,bon1,bon2,bon4,bon6,bon10;

intbranch;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

primf("请输入利润i:");

scanf(u%dn,&i);

branch=i/100000;

if(branch>10)branch=10;

switch(branch)

{case0:bonus=i*0.1;break;

case1:bonus=bon1+(i-100000)*0.075;break;

case2:

case3:bonus=bon2+(i-200000)*0.05;break;

case4:

case5:bonus=bon4+(i-400000)*0.03;break;

case6:

case7:

case8:

case9:bonus=bon6+(i-600000)*0.015;break;

case10:bonus=bon10+(i-1000000)*0.01;

)

printf("奖金是%10.2f\n",bonus);

return0;

)

-#include<stdio.h>

intmain()

{intt,a,b,c,d;

printf("请输入四个数

scanf(n%d,%d,%d,%d",&a,&b,&c,&d);

printf(ua=%d,b=%d,c=%d,d=%d\nH,a,b,c,d);

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(a>d)

{t=a;a=d;d=t;}

if(b>c)

{t=b;b=c;c=t;}

if(b>d)

{t=b;b=d;d=t;}

if(c>d)

{t=c;c=d;d=t;}

printf("排序结果如下:\n”);

printf("%d%d%d%d\nu,a,b,c,d);

return0;

}

t#include<stdio.h>

intmain()

(

inth=10;

floatxl=2,yI=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,dI,d2,d3,d4;

printf("请输入一个点(x,y):");

scanf(,,%f,%f',,&x,&y);

dl=(x-x4)*(x-x4)+(y-y4)*(y-y4);/*求该点到各中心点距离*/

d2=(x-xl)*(x-x1)+(y-yl)*(y-yI);

d3=(x-x2)*(x-x2)+(y・y2)*(y-y2);

(J4=(x-x3)*(x-x3)+(y-y3)*(y-y3);

if(dl>l&&d2>l&&d3>l&&d4>l)h=0;/*判断该点是否在塔外*/

printfT该点高度为%d\n,\h);

return0;

第五章

#include<stdio.h>

#include<malh.h>〃程序中用到数学函数fabs,应包含头文件math.n

intmain()

intsign=l,count=0;//sign用来表示数值的符号,count用来统计循环次数

doublepi=0.0,n=1.0,term=1.0;//pi开始代表多项式的值,最后代表n的值,n代表分母,

term代表当前项的值

while(fabs(term)>=le-8)//检查当前项term的绝对值是否大于或等于10的(-6)

次方

pi=pi+term;//把当前项term累加到pi中

n=n+2;//n+2是下一项的分母

sign=-sign;//sign代表符号,下一项的符号与上一项符号相反

term=sign/n;//求出下一项的值term

count++;//count累加1

)

pi=pi*4;〃多项式的和pi乘以4,才是n的近似值

printf("pi=%10.8f\nM,pi);//输出n的近似值

printf(ncount=%d\n,',count);//输出循环次数

return0;

)

#include<stdio.h>

intmain()

(

intp,r,n,m,temp;

printf("请输入两个正整数

scanf(n%d,%d,n,&n,&m);

if(n<m)

(

temp=n;

n=m;

m=temp;

p=n*m;

while(m!=O)

(

r=n%m;

n=m;

m=r;

)

printf("它们的最大公约数为:%d\n”,n);

printf("它们的最小公约数为:%d\n”,p/n);

return0;

)

#include<stdio.h>

intmain()

(

charc;

intIetters=0,space=0,digit=0,other=0;

printf("请输入一行字符:\n");

while((c=getchar())!=,\n,)

(

if(c>='a'&&cv='z'IIc>='A'&&c<=Z)

letters++;

elseif(c==')

space++;

elseif(0=0'&&c<=,9,)

digit++;

else

other+4-;

1

printf("字母数:%d\n空格数:%d\n数字数:%d\n其它字符数:%d\n",letters,space,digit,other);

return0;

}->#include<stdio.h>

intmain()

(

inta,n,i=1,sn=O,tn=O;

printf(na,n=:u);

scanf("%d,%dH,&a,&n);

while(i<=n)

(

tn=tn+a;/*赋值后的tn为i个a组成数的值*/

sn=sn+tn;/*赋值后的sn为多项式前i项之和*/

a=a*10;

++i;

printf("a+aa4-aaa4-...=%d\nn,sn);

return0;

}#include<stdio.h>

intmain()

{doubles=O,t=l;

intn;

for(n=l;n<=20;n++)

(

t=t*n;

s=s+t;

)

printf(',l!+2!+...+20!=%22.15e\n,,,s);

return0;

}#include<stdio.h>

intmain()

(

intnl=l00,n2=50,n3=10;

doublek,sl=0,s2=0,s3=0;

for(k=1;k<=n1;k++)/*计算1至U100的和*/

{sl=sl+k;}

for(k=l;k<=n2;k++)/*计算1至ij50各数的平方和*/

{s2=s2+k*k;}

for(k=l;k<=n3;k++)/*计算1到10的各倒数和*/

{s3=s3+l/k;}

printf("sum=%15.6f\nM,s1+s2+s3);

return0;

}#include<stdio.h>

intmain()

(

inti,j,k,n;

printf(Mparcissusnumbersare");

for(n=100;n<1000;n++)

(

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf(n%d”,n);

)

printf("\n”);

return0;

}#defineM1000/*定义寻找范围可

#include<stdio.h>

intmain()

intk1,k2,k3,k4,k5k6,k7,k8,k9,k10;

inti,a,n,s;

for(a=2;a<=M;a++)/*a是2-1000之间的整数,检查它是否完数*/

{n=0;/*n用来累计a的因子的个数*/

s=a;/*s用来存放尚未求出的因子之和,开始忖等于a*/

for(i=l;i<a;i++)/*检查i是否a的因子*/

if(a%i==0)/*如果i是a的因子*/

{n++;/*n加1,表示新找到一个因子*/

s=s-i;/*s减去已找到的因子,s的新值是尚未求出的因子之和*/

switch(n)/*将找到的因子赋给kl...k9,或klO*/

{case1:

kl=i;break;/*找出的笫1个因子赋给kl*/

case2:

k2=i;break;/*找出的笫2个因子赋给k2*/

case3:

k3=i;break;/*找出的笫3个因子赋给k3*/

case4:

k4=i;break;/*找出的笫4个因子赋给k4*/

case5:

k5=i;break;/*找出的笫5个因子赋给k5*/

case6:

k6=i;break;/*找出的笫6个因子赋给k6*/

case7:

k7=i;break;/*找出的笫7个因子赋给k7*/

case8:

k8=i;break;/*找出的笫8个因子赋给k8*/

case9:

k9=i;break;/*找出的笫9个因子赋给k9*/

case10:

kl0=i;break;/*找Hl的笫10个因子赋给klO*/

)

)

if(s==O)

(

printf(H%d,ItsfactorsareH,a);

if(n>l)printf(H%d,%dn,kl,k2);/*n>l表示a至少有2个因子*/

if(n>2)printf(",%d”,k3);/*n>2表示至少有3个因子,故应再输出一个

因子*/

if(n>3)printf(u,%d",k4);/*n>3表示至少有4个因子,故应再输出一个

因子*/

if(n>4)printf(';%d",k5);1*以下类似*/

if(n>5)printf(u,%dn,k6);

if(n>6)printf(';%dn,k7);

if(n>7)printf(';%dH,k8);

if(n>8)printf(';%dn,k9);

if(n>9)printf(",%d",klO);

printf(n\n");

)

)

retum0;

}#include<stdio.h>

intmain()

{intm,s,i;

for(m=2;m<1000;m++)

{s=0;

for(i=l;i<m;i++)

if((m%i)==0)s=s+i;

if(s==m)

{printf(u%d,itsfactorsare",m);

for(i=l;i<m;i++)

if(m%i==0)printf(M%dn,i);

printfCAn1');

)

)

retum0;

}#include<stdio.h>

intmain()

(

inti,n=20;

doublea=2,b=l,s=0,t;

for(i=l;i<=n;i++)

(

s=s+a/b;

t=a,

a=a+b,

b=t;

)

printf("sum=%16.1Of\nu,s);

return0;

}#include<stdio.h>

intmain()

(

doublesn=IOO,hn=sn/2;

intn;

for(n=2;n<=10;n++)

sn=sn+2*hn;/*第n次落地时共经过的米数*/

hn=hn/2;/*第n次反跳高度*/

)

prinlf("第10次落地时共经过%£米\/酬);

printf("第10次反弹%f米珀二瓶);

return0;

}#include<stdio.h>

intmain()

(

intday,xl,x2;

day=9;

x2=l;

while(day>0)

{xl=(x2+l)*2;/*第1天的桃子数是第2天桃子数加1后的2倍.*/

x2=xl;

day-;

)

printf(ntotal=%d\nH,x1);

return0;

}#include<stdio.h>

#include<math.h>

intmain()

floata,xO,xl;

printf("enterapositivenumber:");

scanf("%fM,&a);

x0=a/2;

xl=(x0+a/x0)/2;

do

{xO=xl;

xl=(x0+a/x0)/2;

}while(fabs(xO-x1)>=1e-5);

printf(MThesquarerootof%5.2fis%8.5f\n”,a,xl);

return0;

}#include<stdio.h>

#include<math.h>

intmain()

{doublex1,xO,f,f1;

xl=1.5;

do

{x0=x1;

f=((2*x0-4)*x0+3)*x0-6;

fl=(6*x0-8)*x0+3;

xl=x0-f/fl;

}while(fabs(x1-x0)>=1e-5);

printf(nTherootofequationis%5.2f\n",xl);

return0;

}#include<stdio.h>

#include<math.h>

inimain()

{fioatx0,x1,x2,fx0,fxl,fx2;

do

{printfC'enterxl&x2:“);

scanf(n%f,%fH,&xl,&x2);

fxl=xl*((2*xl-4)*xl+3)-6;

fx2=x2*((2*x2-4)*x2+3)-6;

}while(fxl*fx2>0);

do

{x0=(xl+x2)/2;

fx0=x0*((2*x0-4)*x0+3)-6;

if((fx0*fxl)<0)

{x2=x0;

fx2=fx0;

)

else

{xl=x0;

fxl=fx0;

}while(fabs(fxO)>=le-5);

printf("x=%6.2f\n'r,xO);

retum0;

)

-#include<stdio.h>

intmain()

{inti,j,k;

for(i=0;i<=3;i++)

{for(j=0;j<=2-i;j++)

print—”

for(k=0;kv=2*i;k++)

printf(M*H);

printf(M\nn);

)

for(i=0;i<=2;i++)

{for(j=O;j<=i;j++)

printf(”");

for(k=0;k<=4-2*i;k++)

printf(n\nn);

)

return0;

)

#include<stdio.h>

intmain()

(

chari,j,k;/*是a的对手;j是b的对手;k是c的对手*/

for(i='x,;i<='z';i++)

for(j='x';j<=,z,;j++)

if(i!=j)

for(k=,x,;k<=,z,;k++)

if(i!=k&&j!=k)

if(i!='x'&&k!士x'&&k!"'z')

printf(,,A-%c\nB-%c\nC-%c\n,',i,j,k);

return0;

第六章

#include<stdio.h>

#include<math.h>

intmain()

{intij,n,a[101];

for(i=l;i<=100;i++)

a[i]=i;

a[l]=0;

for(i=2;i<sqrt(100);i++)

for(j=i+1;j<=100;j++)

{if(aliJ!=0&&alj]!=0)

if(a[jJ%a[iJ==O)

a[j]=O;

}

printf(n\nM);

for(i=2,n=0;i<=100;i++)

{if(a[i]!=0)

n++;

if(n==10)

{printf("\n");

n=0;

}

)

printf(',\nn);

return0;

}#include<stdio.h>

intmain()

{inti,j,min,temp,a[l1];

printf(nenterdata:\nn);

for(i=l;i<=10;i++)

{printf(nal%dj=n,i);

scanf(n%du,&a[i]);

)

printfC^n'1);

printf(MTheorginalnumbers:\nH);

for(i=l;i<=10;i++)

printf("%5d”,a[i]);

printf(”\n");

for(i=1;i<=9;i++)

{min=i;

for(j=i+1;j<=10;j++)

if(a[min]>a[j])min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

1

printf(n\nThesortednumbers:\n");

for(i=l;i<=10;i++)

printf(n%5dH,a[i]);

printf(n\n");

return0;

)

f#include<stdio.h>

intmain()

(

inta[3][3J,sum=0;

inti,j;

printf(nenterdata:\n");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf(n%3dH,&a[i][j]);

for(i=0;i<3;i++)

sum=sum4-a[i][i];

printf("sum=%6d\n',,sum);

return0;

)

#include<stdio.h>

intmain()

{inta[U]={1,4,6,9,13,16,19,28,40,100);

inttempl,temp2,number,end,i,j;

printf(MaiTaya:\nM);

for(i=0;i<10;i++)

printf(M%5dM,a[i]);

printf(n\nM);

printf(Minsertdata:1');

scanf(n%dH,&number);

end=a[9J;

if(number>end)

a[10J=number;

else

{for(i=0;i<10;i++)

{if(a[i]>number)

{templ=a[i];

a[i]=number;

for(j=i+l;j<H;j++)

{temp2=a[j];

a[j]=templ;

templ=temp2;

)

break;

)

)

)

printf(MNowarraya:\nn);

for(i=0;i<ll;i++)

printf(M%5d",aLi]);

printf("\n");

return0;

)

#include<stdio.h>

#defineN5

intmain()

{inta[N],i,temp;

printf("enterarraya:\nn);

for(i=0;i<N;i++)

scanf(n%dn,&a[i]);

printfC'aiTaya:\n");

for(i=0;i<N;i++)

printf("%4dn,a[i]);

for(i=0;i<N/2;i++)〃循环的作用是将对称的元素的值互换

{temp=a[i];

a[i]=a[N-i-l];

a[N-i-l]=temp;

)

printf(M\nNow,aiTaya:\nn);

for(i=0;i<N;i++)

printf(n%4dH,a[i]);

printf(n\nn);

return0;

)

#include<stdio.h>

#defineN10

intmain()

(inti,j,a[N][N];

for(i=0;i<N;i++)

{a[i][i]=l;

a[i][0]=l;

)

for(i=2;i<N;i++)

for(j=l;j<=i-l;j++)

a[i][j]=a[i-l]U-l]+a[i-l](j];

for(i=0;i<N;i++)

{for(j=O;j<=i;j++)

printf("%6d",a[i][jj);

printf("\n");

)

printf("\n");

return0;

)

#include<stdio.h>

intmain()

{inta[15][15],i,j,k,p,n;

p=l;

while(p==l)

{printf(,'entern(n=l—15):n);

scanfr%d”,&n);

if((n!=O)&&(nv35)&&(n%2!=0))

p=0;

)

for(i=l;i<=n;i++)

for(j=l;j<=n;j++)

a[i]U]=0;

j=n/2+l;

a[l]U]=l;

for(k=2;k<=n*n;k++)

j=j+l;

if((i<l)&&(j>n))

{i=i+2;

)

else

{if(i<l)i=n;

if(j>n)j=l;

if(aliJ[j]==O)

a[i][j]=k;

else

{i=i+2;

j=j-l;

a[i][j]=k;

)

)

for(i=l;i<=n;i++)

{for(j=l;j<=n;j++)

printf(M%5du,a[i]|j]);

printf(n\n");

)

return0;

)

f#include<stdio.h>

#defineN4

#defineM5/*数组为4行5列*/

intmain()

(

inti,j,k,a[N][M],max,maxj,flag;

printf(Mpleaseinputmatrix:\nn);

for(i=0;i<N;i++)/*输入数组*/

for(j=O;j<M;j++)

scanf("%d'\&a[i][j]);

for(i=0;i<N;i++)

{max=a[i][0];/*开始时假设最大*/

maxj=0;/*将列号0赋给maxj保存*/

for(j=0;jvM;j++)/*找出第i行中的最大数*/

if(a[i][j]>max)

{max=a「皿;/*将本行的最大数存放在max中*/

maxj=j;/*将最大数所在的列号存放在maxj中*/

/

flag=l;/*先假设是鞍点,以flag为1代表*/

for(k=0;k<N;k++)

if(max>a[k]fmaxj])/*将最大数和其同列元素相比*/

{flag=0;/*如果max不是同列最小,表示不是鞍点令flagl为0*/

continue;}

if(flag)/*如果flagl为1表示是鞍点*/

{printf("a[%d][%d]=%d\n",i,maxj,max);/*输出鞍点的值和所在行列号*/

break;

)

)

if(!flag)/*如果flag为0表示鞍点不存在*/

printf(MItisnotexistin'1);

return0;

#include<stdio.h>

#defineN15

intmain()

{inti,number,top,bolt,mid,loca,a[N],flag=l,sign;

charc;

printf("enterdata:\n");

scanf("%d”,&a⑼);

i=l;

while(i<N)

{scanf(n%d",&ali]);

if(a[i]>=a[i-l])

i++;

else

printf("enterthisdataagain:\nH);

)

printf("\n");

for(i=0;i<N;i++)

printf(M%5dM,a[i]);

printf(M\n");

while(flag)

{printf(ninputnumbertolookfor:");

scanf(n%d'\&number);

sign=0;

top=0;//top是查找区间的起始位置

bott=N-l;//bott是查找区间的最末位置

if((number<a[O])ll(number>a[N-l]))〃要查的数不在查找区间内

loca=-l;//表示找不到

while((!sign)&&(top<=bott))

{mid=(bott+top)/2;

if(number==a[mid])

{loca=mid;

printf(nHasfound%d,itspositionis%d\nn,number,loca+1);

sign=1;

)

elseif(number<a[midj)

bott=mid-l;

else

top=mid+l;

if(!signllloca==-l)

printf(Hcannotfind%d.\n",number);;

printf("continuornot(Y/N)?n);

scanf(*'%c",&c);

if(c=='N,llc==,n,)

flag=O;

)

return0;

)

#include<stdio.h>

intmain()

{inti,j,upp,low,dig,spa,oth;

chartext[3][80J;

upp=low=dig=spa=oth=0;

for(i=0;i<3;i++)

{printf(npleaseinputline%d:\nn,i+l);

gets(text[i]);

for(j=0;j<80&&textli]|j]!='\O';j++)

{if(text[i][j]>=,A,&&text[i][j]<=,Z,)

upp++;

elseif(text[ij|jj>=a,&&text[ij[j]<='z,)

low+4-;

elseif(text[i][j]>=,0,&&text[i][j]<=,9')

dig++;

elseif(text[i][j]==')

spa++;

else

oth++;

}

)

printf("\nuppercase:%d\n'\upp);

printf("lowercase:%d\nn,low);

printf("digit:%d\n",dig);

printf(nspace:%d\n",spa);

printf("other:%d\n",oth);

return0;

}#include<stdio.h>

intmain()

{char

inti,j,k;

charspace=*

for(i=0;i<5;i++)

{printf(n\nn);

printf(M”);

for(j=l;j<=i;j++)

printf(M%cu,space);

for(k=0;k<5;k++)

printf(n%cu,a[k]);

}

printfCAn");

return0;

}-#include<stdio.h>

intmain()

{intj,n;

charch[80],tran[80];

printfC'inputciphercode:");

gets(ch);

printf(n\nciphercode:%s”,ch);

j=0;

while(ch[j]!=W)

{if((chUJ>='A,)&&(ch[j]<=T))

tran|j]=155-ch[j];

elseif((ch[jj>='a,)&&(ch[]]<=>'))

tran[j]=219-ch|jj;

else

tran[j]=ch[jj;

j++;

n=j;

printfC'Xnoriginaltext:");

for(j=O;j<n;j++)

putchar(tran[j]);

primf("\n");

return0;

)

-#include<stdio.h>

intmain()

{intj,n;

charch[80];

printf(Hinputciphercode:\nH);

gets(ch);

printf(n\nciphercode:%s\n",ch);

j=0;

while(ch|j]!='\0')

{if((chUJ>=Af)&&(chUJ<=,Z'))

ch[jj=155-ch[j];

elseif((ch[j]>='a')&&(ch|jj<=z,))

ch|jj=219-ch|jj;

else

ch[j]=ch|j];

j++;

}

n=j;

printf(noriginaltext:");

for(j=O;j<n;j++)

putchar(ch[j]);

printf("\nH);

return0;

#include<stdio.h>

intmain()

{charsll80J,s2l40J;

inti=0j=0;

printf(ninputstring1:0);

scanf(n%sM,sl);

printf(ninputstring2:");

scanf(n%sn,s2);

while(sl[i]!=、0‘)

i++;

while(s2[j]!=\0,)

sl[i++]=s2[j++];

sl[i]=W;

printf(M\nThenewstringis:%s\n",sl);

return0;

}

f#include<stdio.h>

intmain()

{inti,resu;

charsl[100],s2[100];

printf(ninputstring1:");

gets(sl);

printf(n\ninputstring2:u);

gets(s2);

i=0;

while((sl[i]==s2li])&&(sl[iJ!=W))i++;

if(sl[ij=='\0'&&s2[i]==,\0,)

resu=0;

else

resu=sl[i]-s2[

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论