c程序设计 第五章习题+break和continue的区别

break; 跳出所在的循环
continue; 跳过循环体下面的语句,接着执行下一次循环的判断(如果是for循环,则先执行表达式3,然后在进行下一次循环条件的判断)

求S=a+aa+…aa…a的指(一直到n个a结束)

#include"stdio.h"
int main()
{
int i,a,n,t=0,sum=0;//变量t,sum必须有初值
printf("please input a number:");
scanf("%d",&a);
printf("please input n number:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=t*10+a;//t无初值的话,初次循环t为随机数,sum等同
sum+=t;
}
printf("a+...+aa...a=%d",sum);
}
//例如a=2,n=2
//sum=2+22=24;

求2/1,3/2,5/3…的前n项的和

#include"stdio.h"
void main()
{
float fz=1.0,fm=2.0,sum=0,t=0;//t为临时变量,在此程序中t也可无初值
int i=1,n;
printf("请输入n的值");
scanf("%d",&n);
do
{
sum+=fz/fm;
t=fz;
fz=fm+fz;//找规律,改变分子,分母的值
fm=t;
i++;
}while(i<=n);
printf("%f",sum);
}

求Π的值

#include"stdio.h"
int main()
{
int sign=1;
double pi=0,n=1.0,term=1.0;
while(fabs(term)>=1e-6)
{
pi=pi+term;
n=n+2;
sign=-sign;
term=sign/n;
}
pi=pi*4;
printf("pi=%10.8f\n",pi);
return 0;
}

20内的斐波那契数列

#include"stdio.h"
int main()
{
int f1=1,f2=1;
int i;
for(i=1;i<20;i++)
{
printf("%12d %12d",f1,f2);
if(i%2==0)printf("\n");
f1=f1+f2;
f2=f1+f2;
}
}

在全系1000名学生中举行募捐,当总数达10万元时就结束,统计此时募捐的人数以及募捐的平均每人募捐的数目

#include"stdio.h"
#define SUM 100000/指定符号常量SUM代表10万
int main()
{
double total=0.0,aver,amount;
int i=0;
while(i<=1000)
{
printf("please enter amount");
scanf("%lf",&amount);
total=total+amount;
i++;
if(total>=SUM)
break;
}
aver=total/i;
printf("捐款人数%d 平均每人捐款数目%lf",i,aver);
return 0;//注意输出类型
}

2)continue语句:结束本次循环,跳过循环体下面尚未执行的语句,转到循环体尚未结束之前,接着执行下次循环语句,只能用于循环体语句。

求100~200之间不能被3整除的数

#include"stdio.h"
int main()
{
int i,x;
double n;
for(i=100;i<=200;i++)
{
n=i%3;
if(n==0) continue;
x++;
if(x%5==0)
printf("\n");
printf("%d ",i);
}
return 0;
}

输出以下4*5方阵

#include"stdio.h"
void main()
{
int i,j,n;
for(i=1;i<=4;i++)
for(j=1,n=0;j<=5;j++,n++)
{
if(n%5==0) printf("\n");
printf("%d\t",i*j);
}
}

c程序设计 第五章习题+break和continue的区别_第1张图片
求1~20的阶层

#include"stdio.h"
int main()
{
int i,n=1,sum=0,m=1;
for(n=1;n<=20;n++)
{
for(i=1;i<=n;i++)
{
m=m*i;
}
sum+=m;
}
printf("%d",sum);
}

求1`100的k的和+1~50 k*k的和+1=10的1/k的值

#include"stdio.h"
int main()
{
double sum1,sum2,sum3,k,sum;
sum1=sum2=sum3=sum=0.0;
for(k=1;k<=100;k++)
{
sum1+=k;
}
for(k=1;k<=50;k++)
{
sum2+=(k*k);
}
for(k=1;k<10;k++)
{
sum3+=1/k;
}
sum=sum1+sum2+sum3;
printf("%lf",sum);
}

猴子吃桃问题,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个,以后每天早上都吃了前一天剩下的一一半零一个,到第十天早上想再吃时,就只剩下一个桃子了,求第一天共摘了多少个桃子

#include"stdio.h"
int main()
{
int peach=0;
int rest=1;
int day=0;
for(day=9;day>0;day--)
{
peach=(rest+1)*2;
rest=peach;
}
printf("%D",peach);
system("pause");//将会由中文输出
}

求数字的逆序

#include"stdio.h"
int main()
{
int x,t,a,i=0;
scanf("%d",&x);
t=x;
while(t>0)
{
a=t%10;
printf("%d ",a);
t=t/10;
i++;
}
printf("\n%d",i);
}

求1000以内的完数,一个数恰好等于它的因子之和,如:6=1+2+3

#include"stdio.h"
int main()
{
int i,j,sum;
for(i=2;i<=1000;i++)
{
sum=0;
for(j=1;j<=i/2;j++)
if(i%j==0)
sum+=j;
if(sum==i)
{
printf("%d its factoors/*因子*/ are ",i);
for(j=2;j<=i/2;j++)
if(i%j==0)
printf("%d ",j);
printf("\n");
}
}
}

规范作答:

#include"stdio.h"
int main()
{
int i,j,sum,t;
for(i=2;i<=1000;i++)
{
sum=0;
for(j=1;j<=i/2;j++)
if(i%j==0)
sum+=j;
if(sum==i)
{
printf("%d its factoors are ",i);
t=0;
for(j=2;j<=i/2;j++)
if(i%j==0)
{
t++;
if(t==1) printf("%d",j);
else printf(",%d",j);
}
printf("\n");
}
}
}

c程序设计 第五章习题+break和continue的区别_第2张图片

你可能感兴趣的:(c程序设计)