《《C語言程序設(shè)計》課后習(xí)題答案第四版譚浩強.doc》由會員分享,可在線閱讀,更多相關(guān)《《C語言程序設(shè)計》課后習(xí)題答案第四版譚浩強.doc(161頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第1章程序設(shè)計和C語言1
1.1什么是計算機程序1
1.2什么是計算機語言1
1.3C語言的發(fā)展及其特點3
1.4最簡單的C語言程序5
1.4.1最簡單的C語言程序舉例6
1.4.2C語言程序的結(jié)構(gòu)10
1.5運行C程序的步驟與方法12
1.6程序設(shè)計的任務(wù) 14
1-5 #include
int main ( )
{ printf ("**************************\n\n");
printf(" Very Good!\n\n");
printf ("**************************\n");
return 0;
}
1-6 #include
int main()
{int a,b,c,max;
printf("please input a,b,c:\n");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if (max
#include
int main()
{float p,r,n;
r=0.1;
n=10;
p=pow(1+r,n);
printf("p=%f\n",p);
return 0;
}
3-2-1
#include
#include
int main()
{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;
p=1000;
r5=0.0585;
r3=0.054;
r2=0.0468;
r1=0.0414;
r0=0.0072;
p1=p*((1+r5)*5); // 一次存 5 年期
p2=p*(1+2*r2)*(1+3*r3); // 先存 2 年期,到期后將本息再存 3 年期
p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后將本息再存 2 年期
p4=p*pow(1+r1,5); // 存 1 年期,到期后將本息存再存 1 年期,連續(xù)存 5 次
p5=p*pow(1+r0/4,4*5); // 存活期存款?;钇诶⒚恳患径冉Y(jié)算一次
printf("p1=%f\n",p1); // 輸出按第 1 方案得到的本息和
printf("p2=%f\n",p2); // 輸出按第 2 方案得到的本息和
printf("p3=%f\n",p3); // 輸出按第 3 方案得到的本息和
printf("p4=%f\n",p4); // 輸出按第 4 方案得到的本息和
printf("p5=%f\n",p5); // 輸出按第 5 方案得到的本息和
return 0;
}
3-2-2
#include
#include
int main()
{double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;
p=1000;
r5=0.0585;
r3=0.054;
r2=0.0468;
r1=0.0414;
r0=0.0072;
p1=p*((1+r5)*5); // 一次存 5 年期
p2=p*(1+2*r2)*(1+3*r3); // 先存 2 年期,到期后將本息再存 3 年期
p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后將本息再存 2 年期
p4=p*pow(1+r1,5); // 存 1 年期,到期后將本息存再存 1 年期,連續(xù)存 5 次
p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度結(jié)算一次
printf("p1=%f\n",p1); // 輸出按第 1 方案得到的本息和
printf("p2=%f\n",p2); // 輸出按第 2 方案得到的本息和
printf("p3=%f\n",p3); // 輸出按第 3 方案得到的本息和
printf("p4=%f\n",p4); // 輸出按第 4 方案得到的本息和
printf("p5=%f\n",p5); // 輸出按第 5 方案得到的本息和
return 0;
}
3-2-3
#include
#include
int main()
{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;
p=1000;
r5=0.0585;
r3=0.054;
r2=0.0468;
r1=0.0414;
r0=0.0072;
p1=p*((1+r5)*5); // 一次存 5 年期
p2=p*(1+2*r2)*(1+3*r3); // 先存 2 年期,到期后將本息再存 3 年期
p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后將本息再存 2 年期
p4=p*pow(1+r1,5); // 存 1 年期,到期后將本息存再存 1 年期,連續(xù)存 5 次
p5=p*pow(1+r0/4,4*5); // 存活期存款?;钇诶⒚恳患径冉Y(jié)算一次
printf("p1=%10.2f\n",p1); // 輸出按第 1 方案得到的本息和
printf("p2=%10.2f\n",p2); // 輸出按第 2 方案得到的本息和
printf("p3=%10.2f\n",p3); // 輸出按第 3 方案得到的本息和
printf("p4=%10.2f\n",p4); // 輸出按第 4 方案得到的本息和
printf("p5=%10.2f\n",p5); // 輸出按第 5 方案得到的本息和
return 0;
}
3-3.
#include
#include
int main()
{float d=300000,p=6000,r=0.01,m;
m=log10(p/(p-d*r))/log10(1+r);
printf("m=%6.2f\n",m);
return 0;
}
3-4
#include
int main()
{int c1,c2;
c1=197;
c2=198;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d , c2=%d\n",c1,c2);
return 0;
}
3-5
#include
int main()
{int a,b;
float x,y;
char c1,c2;
scanf("a=%d b=%d",&a,&b);
scanf("%f %e",&x,&y);
scanf("%c%c",&c1,&c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);
return 0;
}
3-6
#include
int main()
{char c1=C,c2=h,c3=i,c4=n,c5=a;
c1=c1+4;
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c5+4;
printf("passwor is %c%c%c%c%c\n",c1,c2,c3,c4,c5);
return 0;
}
3-7
#include
int main ()
{float h,r,l,s,sq,vq,vz;
float pi=3.141526;
printf(" 請輸入圓半徑 r ,圓柱高 h ∶ ");
scanf("%f,%f",&r,&h); // 要求輸入圓半徑 r 和圓柱高 h
l=2*pi*r; // 計算圓周長 l
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\n",l);
printf(" 圓面積為 : s=%6.2f\n",s);
printf(" 圓球表面積為 : sq=%6.2f\n",sq);
printf(" 圓球體積為 : v=%6.2f\n",vq);
printf(" 圓柱體積為 : vz=%6.2f\n",vz);
return 0;
}
3-8-1
#include
int main()
{
int c1,c2; // 整型定義
printf(" 請輸入兩個整數(shù) c1,c2:");
scanf("%d,%d",&c1,&c2);
printf(" 按字符輸出結(jié)果 :\n");
printf("%c,%c\n",c1,c2);
printf(" 按 ASCII 碼輸出結(jié)果為 :\n");
printf("%d,%d\n",c1,c2);
return 0;
}
3-8-2
#include
int main()
{
char c1,c2; // 定義字符型變量
int i1,i2; // 定義整型變量
printf(" 請輸入兩個字符 c1,c2:");
scanf("%c,%c",&c1,&c2);
i1=c1; // 賦值給整型變量
i2=c2;
printf(" 按字符輸出結(jié)果 :\n");
printf("%c,%c\n",i1,i2);
printf(" 按整數(shù)輸出結(jié)果 :\n");
printf("%d,%d\n",c1,c2);
return 0;
}
3-8-3
#include
int main()
{
char c1,c2; // 定義為字符型
int i1,i2; // 定義為整型
printf(" 請輸入兩個整數(shù) i1,i2:");
scanf("%d,%d",&i1,&i2);
c1=i1; // 將整數(shù)賦值給字符變量
c2=i2;
printf(" 按字符輸出結(jié)果 :\n");
printf("%c,%c\n",c1,c2);
printf(" 按整數(shù)輸出結(jié)果 :\n");
printf("%d,%d\n",c1,c2);
return 0;
}
3-8
#include
int main()
{
char c1,c2;
printf(" 請輸入兩個字符 c1,c2:");
c1=getchar();
c2=getchar();
printf(" 用 putchar 語句輸出結(jié)果為 :");
putchar(c1);
putchar(c2);
printf("\n");
printf(" 用 printf 語句輸出結(jié)果為 :");
printf("%c %c\n",c1,c2);
return 0;
}
第 4 章選擇結(jié)構(gòu)程序設(shè)計 85
4.1 選擇結(jié)構(gòu)和條件判斷 85
4.2 用 if 語句實現(xiàn)選擇結(jié)構(gòu) 87
4.2.1 用 if 語句處理選擇結(jié)構(gòu)舉例 87
4.2.2if 語句的一般形式 89
4.3 關(guān)系運算符和關(guān)系表達式 91
4.3.1 關(guān)系運算符及其優(yōu)先次序 91
4.3.2 關(guān)系表達式 92
4.4 邏輯運算符和邏輯表達式 92
4.4.1 邏輯運算符及其優(yōu)先次序 93
4.4.2 邏輯表達式 94
4.4.3 邏輯型變量 96
4.5 條件運算符和條件表達式 97
4.6 選擇結(jié)構(gòu)的嵌套 99
4.7 用 switch 語句實現(xiàn)多分支選擇結(jié)構(gòu) 102
4.8 選擇結(jié)構(gòu)程序綜合舉例 105
習(xí)題 111
4-4-1
#include
int main()
{
int a,b,c;
printf(" 請輸入三個整數(shù) :");
scanf("%d,%d,%d",&a,&b,&c);
if (a
int main()
{ int a,b,c,temp,max;
printf(" 請輸入三個整數(shù) :");
scanf("%d,%d,%d",&a,&b,&c);
temp=(a>b)?a:b; /* 將 a 和 b 中的大者存入 temp 中 */
max=(temp>c)?temp:c; /* 將 a 和 b 中的大者與 c 比較 , 取最大者 */
printf(" 三個整數(shù)的最大數(shù)是 %d\n",max);
return 0;
}
4-5-2
#include
#include
#define M 1000
int main()
{
int i,k;
printf(" 請輸入一個小于 %d 的整數(shù) i:",M);
scanf("%d",&i);
while (i>M)
{printf(" 輸入的數(shù)不符合要求,請重新輸入一個小于 %d 的整數(shù) i:",M);
scanf("%d",&i);
}
k=sqrt(i);
printf("%d 的平方根的整數(shù)部分是: %d\n",i,k);
return 0;
}
4-5
#include
#include
#define M 1000
int main()
{
int i,k;
printf(" 請輸入一個小于 %d 的整數(shù) i:",M);
scanf("%d",&i);
if (i>M)
{printf(" 輸入的數(shù)不符合要求,請重新輸入一個小于 %d 的整數(shù) i:",M);
scanf("%d",&i);
}
k=sqrt(i);
printf("%d 的平方根的整數(shù)部分是: %d\n",i,k);
return 0;
}
4-6.
#include
int main()
{ int x,y;
printf(" 輸入 x:");
scanf("%d",&x);
if(x<1) /* x<1 */
{ y=x;
printf("x=%3d, y=x=%d\n" ,x,y);
}
else if(x<10) /* 1==10 */
{ y=3*x-11;
printf("x=%d, y=3*x-11=%d\n",x,y);
}
return 0;
}
4-7-1
#include
int main()
{
int x,y;
printf("enter x:");
scanf("%d",&x);
y=-1;
if(x!=0)
if(x>0)
y=1;
else
y=0;
printf("x=%d,y=%d\n",x,y);
return 0;
}
4-7-2
#include
int main()
{
int x,y;
printf("please enter x:");
scanf("%d",&x);
y=0;
if(x>=0)
if(x>0) y=1;
else y=-1;
printf("x=%d,y=%d\n",x,y);
return 0;
}
4-8
#include
int main()
{ float score;
char grade;
printf(" 請輸入學(xué)生成績 :");
scanf("%f",&score);
while (score>100||score<0)
{printf("\n 輸入有誤 , 請重輸 ");
scanf("%f",&score);
}
switch((int)(score/10))
{case 10:
case 9: grade=A;break;
case 8: grade=B;break;
case 7: grade=C;break;
case 6: grade=D;break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: grade=E;
}
printf(" 成績是 %5.1f, 相應(yīng)的等級是 %c\n ",score,grade);
return 0;
}
4-9
#include
#include
int main()
{
int num,indiv,ten,hundred,thousand,ten_thousand,place; // 分別代表個位 , 十位 , 百位 , 千位 , 萬位和位數(shù)
printf(" 請輸入一個整數(shù) (0-99999):");
scanf("%d",&num);
if (num>9999)
place=5;
else if (num>999)
place=4;
else if (num>99)
place=3;
else if (num>9)
place=2;
else place=1;
printf(" 位數(shù) :%d\n",place);
printf(" 每位數(shù)字為 :");
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)
{case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
printf("\n 反序數(shù)字為 :");
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("\n 反序數(shù)字為 :");
printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
break;
case 3:printf("%d,%d,%d",hundred,ten,indiv);
printf("\n 反序數(shù)字為 :");
printf("%d%d%d\n",indiv,ten,hundred);
break;
case 2:printf("%d,%d",ten,indiv);
printf("\n 反序數(shù)字為 :");
printf("%d%d\n",indiv,ten);
break;
case 1:printf("%d",indiv);
printf("\n 反序數(shù)字為 :");
printf("%d\n",indiv);
break;
}
return 0;
}
4-10-1
#include
int main()
{
int i;
double bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+100000*0.05;
bon6=bon4+100000*0.03;
bon10=bon6+400000*0.015;
printf(" 請輸入利潤 i:");
scanf("%d",&i);
if (i<=100000)
bonus=i*0.1;
else if (i<=200000)
bonus=bon1+(i-100000)*0.075;
else if (i<=400000)
bonus=bon2+(i-200000)*0.05;
else if (i<=600000)
bonus=bon4+(i-400000)*0.03;
else if (i<=1000000)
bonus=bon6+(i-600000)*0.015;
else
bonus=bon10+(i-1000000)*0.01;
printf(" 獎金是 : %10.2f\n",bonus);
return 0;
}
4-10-2
#include
int main()
{
int i;
double bonus,bon1,bon2,bon4,bon6,bon10;
int branch;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
printf(" 請輸入利潤 i:");
scanf("%d",&i);
branch=i/100000;
if (branch>10) branch=10;
switch(branch)
{ case 0:bonus=i*0.1;break;
case 1:bonus=bon1+(i-100000)*0.075;break;
case 2:
case 3: bonus=bon2+(i-200000)*0.05;break;
case 4:
case 5: bonus=bon4+(i-400000)*0.03;break;
case 6:
case 7:
case 8:
case 9: bonus=bon6+(i-600000)*0.015;break;
case 10: bonus=bon10+(i-1000000)*0.01;
}
printf(" 獎金是 %10.2f\n",bonus);
return 0;
}
4-11
#include
int main()
{int t,a,b,c,d;
printf(" 請輸入四個數(shù) :");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("a=%d,b=%d,c=%d,d=%d\n",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(" 排序結(jié)果如下 : \n");
printf("%d %d %d %d \n" ,a,b,c,d);
return 0;
}
4-12
#include
int main()
{
int h=10;
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
printf(" 請輸入一個點 (x,y):");
scanf("%f,%f",&x,&y);
d1=(x-x4)*(x-x4)+(y-y4)*(y-y4); /* 求該點到各中心點距離 */
d2=(x-x1)*(x-x1)+(y-y1)*(y-y1);
d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);
d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);
if (d1>1 && d2>1 && d3>1 && d4>1) h=0; /* 判斷該點是否在塔外 */
printf(" 該點高度為 %d\n",h);
return 0;
}
第 5 章循環(huán)結(jié)構(gòu)程序設(shè)計 114
5.1 為什么需要循環(huán)控制 114
5.2 用 while 語句實現(xiàn)循環(huán) 115
5.3 用 do…while 語句實現(xiàn)循環(huán) 117
5.4 用 for 語句實現(xiàn)循環(huán) 120
5.5 循環(huán)的嵌套 124
5.6 幾種循環(huán)的比較 125
5.7 改變循環(huán)執(zhí)行的狀態(tài) 125
5.7.1 用 break 語句提前終止循環(huán) 126
5.7.2 用 continue 語句提前結(jié)束本次循環(huán) 127
5.7.3break 語句和 continue 語句的區(qū)別 128
5.8 循環(huán)程序舉例 131
習(xí)題 140
5-2
#include
#include // 程序中用到數(shù)學(xué)函數(shù) fabs ,應(yīng)包含頭文件 math.n
int main()
{
int sign=1,count=0; // sign 用來表示數(shù)值的符號 ,count 用來統(tǒng)計循環(huán)次數(shù)
double pi=0.0,n=1.0,term=1.0; // pi 開始代表多項式的值,最后代表π的值 , n 代表分母, term 代表當(dāng)前項的值
while(fabs(term)>=1e-8) // 檢查當(dāng)前項 term 的絕對值是否大于或等于 10 的 (-6) 次方
{
pi=pi+term; // 把當(dāng)前項 term 累加到 pi 中
n=n+2; // n+2 是下一項的分母
sign=-sign; // sign 代表符號,下一項的符號與上一項符號相反
term=sign/n; // 求出下一項的值 term
count++; // count 累加 1
}
pi=pi*4; // 多項式的和 pi 乘以 4 ,才是π的近似值
printf("pi=%10.8f\n",pi); // 輸出π的近似值
printf("count=%d\n",count); // 輸出循環(huán)次數(shù)
return 0;
}
5-3
#include
int main()
{
int p,r,n,m,temp;
printf(" 請輸入兩個正整數(shù) n,m:");
scanf("%d,%d,",&n,&m);
if (n
int main()
{
char c;
int letters=0,space=0,digit=0,other=0;
printf(" 請輸入一行字符 :\n");
while((c=getchar())!=\n)
{
if (c>=a && c<=z || c>=A && c<=Z)
letters++;
else if (c== )
space++;
else if (c>=0 && c<=9)
digit++;
else
other++;
}
printf(" 字母數(shù) :%d\n 空格數(shù) :%d\n 數(shù)字?jǐn)?shù) :%d\n 其它字符數(shù) :%d\n",letters,space,digit,other);
return 0;
}
5-5
#include
int main()
{
int a,n,i=1,sn=0,tn=0;
printf("a,n=:");
scanf("%d,%d",&a,&n);
while (i<=n)
{
tn=tn+a; /* 賦值后的 tn 為 i 個 a 組成數(shù)的值 */
sn=sn+tn; /* 賦值后的 sn 為多項式前 i 項之和 */
a=a*10;
++i;
}
printf("a+aa+aaa+...=%d\n",sn);
return 0;
}
5-6
#include
int main()
{double s=0,t=1;
int n;
for (n=1;n<=20;n++)
{
t=t*n;
s=s+t;
}
printf("1!+2!+...+20!=%22.15e\n",s);
return 0;
}
5-7
#include
int main()
{
int n1=100,n2=50,n3=10;
double k,s1=0,s2=0,s3=0;
for (k=1;k<=n1;k++) /* 計算 1 到 100 的和 */
{s1=s1+k;}
for (k=1;k<=n2;k++) /* 計算 1 到 50 各數(shù)的平方和 */
{s2=s2+k*k;}
for (k=1;k<=n3;k++) /* 計算 1 到 10 的各倒數(shù)和 */
{s3=s3+1/k;}
printf("sum=%15.6f\n",s1+s2+s3);
return 0;
}
5-8
#include
int main()
{
int i,j,k,n;
printf("parcissus numbers are ");
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("%d ",n);
}
printf("\n");
return 0;
}
5-9-1
#define M 1000 /* 定義尋找范圍 */
#include
int main()
{
int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
int i,a,n,s;
for (a=2;a<=M;a++) /* a 是 2-1000 之間的整數(shù),檢查它是否完數(shù) */
{n=0; /* n 用來累計 a 的因子的個數(shù) */
s=a; /* s 用來存放尚未求出的因子之和,開始時等于 a */
for (i=1;i1) printf("%d,%d",k1,k2); /* n>1 表示 a 至少有 2 個因子 */
if (n>2) printf(",%d",k3); /* n>2 表示至少有 3 個因子,故應(yīng)再輸出一個因子 */
if (n>3) printf(",%d",k4); /* n>3 表示至少有 4 個因子,故應(yīng)再輸出一個因子 */
if (n>4) printf(",%d",k5); /* 以下類似 */
if (n>5) printf(",%d",k6);
if (n>6) printf(",%d",k7);
if (n>7) printf(",%d",k8);
if (n>8) printf(",%d",k9);
if (n>9) printf(",%d",k10);
printf("\n");
}
}
return 0;
}
5-9-2
#include
int main()
{int m,s,i;
for (m=2;m<1000;m++)
{s=0;
for (i=1;i
int main()
{
int i,n=20;
double a=2,b=1,s=0,t;
for (i=1;i<=n;i++)
{
s=s+a/b;
t=a,
a=a+b,
b=t;
}
printf("sum=%16.10f\n",s);
return 0;
}
5-11
#include
int main()
{
double sn=100,hn=sn/2;
int n;
for (n=2;n<=10;n++)
{
sn=sn+2*hn; /* 第 n 次落地時共經(jīng)過的米數(shù) */
hn=hn/2; /* 第 n 次反跳高度 */
}
printf(" 第 10 次落地時共經(jīng)過 %f 米 \n",sn);
printf(" 第 10 次反彈 %f 米 \n",hn);
return 0;
}
5-12
#include
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2; /* 第 1 天的桃子數(shù)是第 2 天桃子數(shù)加 1 后的 2 倍 .*/
x2=x1;
day--;
}
printf("total=%d\n",x1);
return 0;
}
5-13
#include
#include
int main()
{
float a,x0,x1;
printf("enter a positive number:");
scanf("%f",&a);
x0=a/2;
x1=(x0+a/x0)/2;
do
{x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>=1e-5);
printf("The square root of %5.2f is %8.5f\n",a,x1);
return 0;
}
5-14
#include
#include
int main()
{double x1,x0,f,f1;
x1=1.5;
do
{x0=x1;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x1=x0-f/f1;
}while(fabs(x1-x0)>=1e-5);
printf("The root of equation is %5.2f\n",x1);
return 0;
}
5-15
#include
#include
int main()
{float x0,x1,x2,fx0,fx1,fx2;
do
{printf("enter x1 & x2:");
scanf("%f,%f",&x1,&x2);
fx1=x1*((2*x1-4)*x1+3)-6;
fx2=x2*((2*x2-4)*x2+3)-6;
}while(fx1*fx2>0);
do
{x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3)-6;
if ((fx0*fx1)<0)
{x2=x0;
fx2=fx0;
}
else
{x1=x0;
fx1=fx0;
}
}while(fabs (fx0)>=1e-5);
printf("x=%6.2f\n",x0);
return 0;
}
5-16
#include
int main()
{int i,j,k;
for (i=0;i<=3;i++)
{for (j=0;j<=2-i;j++)
printf(" ");
for (k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for (i=0;i<=2;i++)
{for (j=0;j<=i;j++)
printf(" ");
for (k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
return 0;
}
5-17
#include
int main()
{
char i,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);
return 0;
}
第 6 章利用數(shù)組處理批量數(shù)據(jù) 142
6.1 怎樣定義和引用一維數(shù)組 142
6.1.1 怎樣定義一維數(shù)組 143
6.1.2 怎樣引用一維數(shù)組元素 144
6.1.3 一維數(shù)組的初始化 145
6.1.4 一維數(shù)組程序舉例 146
6.2 怎樣定義和引用二維數(shù)組 148
6.2.1 怎樣定義二維數(shù)組 149
6.2.2 怎樣引用二維數(shù)組的元素 150
6.2.3 二維數(shù)組的初始化 151
6.2.4 二維數(shù)組程序舉例 152
6.3 字符數(shù)組 154
6.3.1 怎樣定義字符數(shù)組 154
6.3.2 字符數(shù)組的初始化 155
6.3.3 怎樣引用字符數(shù)組中的元素 155
6.3.4 字符串和字符串結(jié)束標(biāo)志 156
6.3.5 字符數(shù)組的輸入輸出 159
6.3.6 使用字符串處理函數(shù) 161
6.3.7 字符數(shù)組應(yīng)用舉例 165
習(xí)題 168
6-1
#include
#include
int main()
{int i,j,n,a[101];
for (i=1;i<=100;i++)
a[i]=i;
a[1]=0;
for (i=2;i
int main()
{int i,j,min,temp,a[11];
printf("enter data:\n");
for (i=1;i<=10;i++)
{printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("The orginal numbers:\n");
for (i=1;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;
}
printf("\nThe sorted numbers:\n");
for (i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
6-3
#include
int main()
{
int a[3][3],sum=0;
int i,j;
printf("enter data:\n");
for (i=0;i<3;i++)
for (j=0;j<3;j++)
scanf("%3d",&a[i][j]);
for (i=0;i<3;i++)
sum=sum+a[i][i];
printf("sum=%6d\n",sum);
return 0;
}
6-4
#include
int main()
{ int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf("array a:\n");
for (i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert data:");
scanf("%d",&number);
end=a[9];
if (number>end)
a[10]=number;
else
{for (i=0;i<10;i++)
鏈接地址:http://weibangfood.com.cn/p-12737557.html