第四次作业
一、实验内容
1. 实验要求:
1.编写程序,输入一个整数x,按照下式输出对应的y值。
代码:
#include<stdio.h>
int main()
{
int x,i,y;
printf("请输入一个整数");
scanf("%d",&x);
y=0;
if (x%2!=0)
{
for(i=1;i<=x;i+=2)
{
y+=i;
}
printf("%d",y);
}
else
{
for(i=2;i<=x;i+=2)
{
y+=i;
}
printf("%d",y);
}
return 0;
}
程序运行结果:

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

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

4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
代码:
#include <stdio.h>
int main()
{
int x,m,a,y=1;
printf("请输入一个实数和一个整数\n");
scanf("%d %d",&x,&m);
for(a=1;a<=m;a++)
y=x*y;
printf("%d\n",y);
return 0;
}
程序运行结果:

5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
代码:
#include <stdio.h>
int main()
{
int i=0,j=0,k=0,l=0,m=0;
char a;
printf("请输入一串字符\n");
scanf("%c",&a);
while (a!='\n')
{
if (a>='a'&&a<='z')
{
i++;
}
else if(a>='A'&&a<='Z')
{
j++;
}
else if(a==' ')
{
k++;
}
else if(a>='0'&&a<='9')
{
l++;
}
else
{
m++;
}
scanf("%c",&a);
}
printf("该段共有%d个小写字母,%d个大写字母,%d个空格,%d个数字,%d个其它字符",i,j,k,l,m);
return 0;
}
程序运行结果:

6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值。
代码:
#include <stdio.h>
int main()
{
int a,i=0,j=0,sum1,sum2;
float b,c;
printf("请输入一些正数和负数");
scanf("%d",&a);
if(a==0)
{
printf("输入错误");
}
else
{
while(a!=0)
{
if(a>0)
{
sum1=sum1+a;
i++;
}
else
{
sum2=sum2+a;
j++;
}
scanf("%d",&a);
}
}
b=(float)sum1/i;
c=(float)sum2/j;
printf("%.2f %.2f",b,c);
return 0;
}
程序运行结果:

7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
代码:
#include <stdio.h>
int main()
{
int i,j,k;
for(i=2;i<=1000;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
{
break;
}
}
if(j>=i)
{
printf("%3d ",i);
k++;
if(k%10==0)
{
printf("\n");
}
}
}
return 0;
}
程序运行结果:

8.打印下列图形
代码:
#include <stdio.h>
int main ()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i-1;j++)
printf(" ");
for(j=1;j<=11-2*i;j++)
printf("*");
printf("\n");
}
return 0;
}
程序运行结果:

二、本次课知识点总结
1.循环语句“for语句”的应用。注意“for”后要加“( )”;
2.已知循环次数的循环用“for”语句,未知的用“while”语句;
3.if语句的嵌套,if后记得加“()”,最后的else后面不加“()”;
4.定义字符变量用“char”而不是“int”;
5.累加问题的初始值定义为0,累乘问题的初始值定义为1。
三、实验总结
1.求正数和负数的平均值时程序不循环
2.注意计算时的要求,是为0循环还是不为0循环,不要搞混了
3.输出年份时注意间隙和换行。


浙公网安备 33010602011771号