C程序设计第五章课后习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环结构程序设计

P115 5.1 用while计算1至100的合.

#include

int main()

{

int i=1,sum=0;

while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定.

{

sum=sum+i;

i++;

}

printf("The sum is %d .\n",sum);

return 0;

}

P117 5.2 用do-while来做1至100的合.

#include

int main()

{

int i=1,sum=0;

do// do-while可以做的事,用while都可以做到.

{ //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行.

sum=sum+i;

i++;

}while(i<=100);

printf("The sum is %d .\n",sum);

return 0;

}

P118 5.3 比较do-while与while的差别.

#include

{

int i,sum=0;

printf("Please input a number :");

scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0.

while(i<=10)

{

sum=sum+i;

i++;

}

printf("The sum of 1-10 is %d .\n",sum);

return 0;

}

#include

int main()

{

int i,sum=0;

printf("Please input a number :");

scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11.

do

{

sum=sum+i;

i++;

}while(i<=10); //此重点在于理解二者的差别.

printf("The sum of 1-10 is %d .\n",sum);

return 0;

}

P126 5.4 break的例子.

#include

int main()

{

int i,b=0,a,c;

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

{

printf("Please input amount :"); //循环体内套有输出语句以及跳出语句.

scanf("%d",&a);

b=b+a;

if(b>=100)

break; //break是用于跳出循环,对if无效,对while for switch 这一类.

}

}

c=b/i;

printf("conut is %d , aver is %d ",i+1,c); //注意%号后的形式,否则可能输出错误.

return 0;

}

P127 5.5 continue的例子.

#include

int main()

{

int i;

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

{

if(i%3!=0)

{

continue; //跳过本次I,执行下一个i.

}

printf("%d ",i);

}

printf("\n");

return 0;

}

P128 5.6 形成一个4*5的矩阵.

#include

int main()

{

int i,j,a=0; //没有给初值,会出现警告: 使用了未初始化的局部变量“a”.

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

{

for(j=1;j<=5;j++,a++) // a用来控制换行.

{

if(a%5==0)

{

printf("\n");

}

printf("%d\t",i*j);

}

}

printf("\n");

return 0;

}

P131 5.7 用一个交错的式子求哌的近似值.

#include

#include

int main() //四分之哌等于(1)-(1/3)+(1/5)-(1/7)+(1/9)-(1/11).

{

float s=1,n=1,m,sum=0,t;

for(m=1;;m=m+2) //不确定哪项才会小于等于十的负六次方,所以不指定,无限下去.

{ //不指定第二项,执行语句中应该有控制跳出的句子,否则死循环.

t=(s)*(n/m); //这是第一项,s是符号,

if(fabs(t)<=1e-6) //应该写在这里,题目要求这一项不累加进去.

{

break;

}

sum=sum+t; //因为累加项在这里,所以,一旦跳出就不会累加进来了.

s=s*(-1); //变号一次.

}

printf("四分之一哌的值是%f.\n",sum);

printf("一个完整哌的值是%f.\n",sum*4);

return 0;

}

//下面这段小代码用来验证关于数值型数据类型的关系.去掉注释,可运行.

//如果出现类似值为全1或是全零的话,一般可以考虑数据类型赋值或是定义错了的问题.

//#include //这是关于int float double三者关复杂关系的,乱啊,如果看不懂,可以通过实验自己明白来.

//

//int main() //在C语言中,1.0认为是实数,即是double型,所以,如果你把它用float输出的话,会有警告:警告 1 warning C4305: “=”: 从“double”到“float”截断.

//{

// float m,a,b,c; //一旦定义了是这种类型的话,输出或是赋值的时候只能扩展不能截断,意思就是能变成double型,不能变成int型啦.而且后面的赋值会跟着它变成相应的类型.比如下面的m=1,其实得到的是m=1.0.

相关文档
最新文档