第四次作业 计科

  一、实验内容          

    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.输出年份时注意间隙和换行。

原文地址:https://www.cnblogs.com/wei530/p/6004232.html