第四次作业
1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include<stdio.h>
int main()
{
int a,b,i;
b=0;
printf("请输入一个整数,我将按照题目要求计算结果\n");
scanf("%d",&a);
if(a%2==1)
{
for(i=1;i<=a;i=i+2)
{
b=b+i;
}
}
else if(a%2==0)
{
for(i=2;i<=a;i=i+2)
{
b=b+i;
}
}
printf("%d",b);
return 0;
}

2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
#include<stdio.h>
int main()
{
int i,a;
float y=1;
for(i=2;i<=100;i=i+2)
{
y=y-1.00/i;
}
for(a=3;a<=100;a=a+2)
{
y=y+1.00/a;
}
printf("%0.2f\a",y);
return 0;
}

3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
#include<stdio.h>
int main()
{
int i,a;a=0;
for(i=2000;i<=3000;i++)
{
if((i%4==0&&i%100!=0)||(i%400==0))
{
printf("%03d ",i);a++;
if(a%10==0)
{
printf("\n");
}
}
}
printf("一共有%d个闰年",a);
return 0;
}

4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include<stdio.h>
int main()
{
int m,i;
float x,y=1;
printf("请输入一个实数x和一个整数m\n");
scanf("%f %d",&x,&m);
if(m>0)
{
for(i=1;i<=m;i++)
{
y=y*x;
}
}
else if(m==0)
{
y=1;
}
else
{
printf("输入错误\n");
}
printf("%f\n",y);
return 0;
}


5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
#include<stdio.h>
int main()
{
int a,b,c,d,e,i;
char x;
a=0;
b=0;
c=0;
d=0;
e=0;
printf("请输入一串字符,我将计算其中各个种类字符的数目\n");
scanf("%c",&x);
while(x!='\n')
{
if('A'<=x&&x<='Z'||'a'<=x&&x<='z')
{
b++;
}
else if(x==32)
{
c++;
}
else if('0'<=x&&x<='9')
{
d++;
}
else
{
e++;
}
scanf("%c",&x);
}
printf("其中字母有%d个,空格有%d个,数字有%d个,其他有%d个",b,c,d,e);
return 0;
}

6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,
#include<stdio.h>
int main()
{
int a,b,c,d,e,f,g;
a=0;
b=0;
c=0;
d=0;
printf("请输入一列数,以0结束\n");
while(1)
{
scanf("%d",&e);
if(e<0)
{
a+=e;
c++;
}
else if(e>0)
{
b+=e;
d++;
}
else if(e==0)
break;
}
if(d==0)
{
printf("没有正数\n");
}
else
{
printf("正数的平均数为%f\n",(float)b/d);
}
if(c==0)
{
printf("没有负数\n");
}
else
{
printf("负数的平均数为%f\n",(float)a/c);
}
return 0;
}

7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include<stdio.h>
int main()
{
int i,a,x=0,flag=0;
for(i=2;i<=1000;i++)
{
for(a=2,flag=0;a<=i-1;a++)
{
if(i%a==0)
{
flag=1;
break;
}
}
if(flag!=1)
{
printf("%04d ",i);
x++;
if(x%10==0)
{
printf("\n");
}
}
}
printf("一共有%d个素数",x);
return 0;
}

8.打印下列图形

#include<stdio.h>
int main()
{
int i,a;
for(i=1;i<=5;i++)
{
for(a=1;a<=i-1;a++)
{
printf(" ");
}
for(a=1;a<=2*(5-i)+1;a++)
{
printf("*");
}
printf("\n");
}
return 0;
}

知识点总结:
输出三位数字,不足三位在后面补空格用%.3d。
2.for语句、while语句和do...while语句的使用和区别
for用在知道循环次数的时候,不知道循环次数的时候用while和do...while, do...while是必须执行一次
3.累加求和问题注意 和要初始化为 累乘求和问题注意 乘积要初始化为1
实验境界;
1、循环时,注意循环的边界,和循环一次计数的变量增加多少
2、输出十个一换行,用次数和10求余,然后输出\n
3.明确每个值所代表的意义。
4.循环体中应有是循环趋向结束的语句。

浙公网安备 33010602011771号