首页 > 代码库 > 第四次作业

第四次作业

4-1编写程序输入一个整数x,按照下式输入对应的y值    x为奇数y=1+3+5+...+x    x为偶数y=2+4+6+...+x

#include<stdio.h>
int main()
{
	int a,b,sum=0;
	printf("输入一个整数。\n");
	scanf("%d",&a);
	if(a<=0)
	{
		printf("输入错误\n");
	}
	else if(a%2==0)
	{
		for(b=2;b<=a;b=b+2)
		{
			sum=sum+b;
		}
		{
			printf("输出为%d\n",sum);
		}
	}
	else if(a%2!=0)
	{
		for(b=1;b<=a;b=b+2)
		{
			sum=sum+b;
		}
		{
			printf("输出为%d\n",sum);
		}
	}
	return 0;
}

 技术分享

知识点总结:for循环语句的应用  for(表达式1;表达式2;表达式3)  表达式1是一个在开始循环前要计算的表达式,即为循环变量赋出值。表达式2是计算结果为真或假的条件表达式。在每次循环前计算该条件,当计算结果为真时执行循环,为假时退出循环。表达式3是一个在每次循环体执行后要计算的表达式。

实验总结:for语句的格式表达含义,充分考虑情况,分析好题目,明确编程思路。

4-2编程求  1-1/2+1/3-1/4+1/5-...-1/100  保留两位小数

#include<stdio.h>
int main()
{
	int a;
	float b,sum;
	for(a=1;a<100;a++)
	{
		if(a%2!=0)
		{
			b=1/(float)a;
		}
        else
		{
		    b=-1/(float)a;
		}
	    sum=sum+b;
	}
	printf("和为%.2f",sum);
	return 0;
}

 技术分享

知识点总结:循环语句,两种情况,

实验总结:保留两位小数的格式%.2f,float浮点型函数的应用。

4-3输入2000年至3000年所有闰年的年号,每输入10个年号换一行,最后统计一共有多少个闰年

#include<stdio.h>
int main()
{
	int a,b=0;
	for(a=2000;a<=3000;a++)
	{
		if((a%4==0&&a%100!=0)||(a%400==0))
		{
			{
				printf("%d",a);
				b=b+1;
			}
			if(b%10==0)
			{
				printf("\n");
			}
		}
		printf("共有%d",b);
	}
	return 0;
}

 技术分享

知识点总结:for循环

实验总结:符合闰年的条件,注意语句执行的范围,大括号的使用。

4-4输入一个实数X和一个整数M,计算Xm

#include<stdio.h>
int main()
{
	int a,b;
	float c,sum=1.0;
	printf("输入一个实数和一个整数\n");
	scanf("%f,%d",&c,&a);
	if(b=0)
	{
        sum=1;
	}
	else
	{
         for(b=1;b<=a;b++)  
		 {
			 sum=sum*c;
		 }
	}
	printf("输出为%d\n",sum);
	return 0;
}

知识点,实验总结:初始变量赋值,求幂考虑0次幂时为1.

4-5输入一串字符,分别统计其中字母空格数字和其他字符的个数

#include<stdio.h>
int main()
{
	int a,b,m,n;
	char c;
	a=0;
	b=0;
	m=0;
	n=0;
	while((c=getchar())!=‘\n‘)
	{
		if(c>=‘a‘&&c<=‘z‘||c<=‘z‘&&c>=‘a‘)
		{
			a++;
		}
		else if(c==‘ ‘)
		{
			b++;
		}
		else if(c>=‘0‘&&c<=‘9‘)
		{
			m++;
		}
		else
		{
			n++;
		}
	}
	printf("字母=%d,空格=%d,数字=%d,其他=%d\n",a,b,m,n);
	return 0;
}

 技术分享

知识点  实验总结:首先赋出值为0,在执行时依次累加,各种情况都要表达清楚。

4-6输入一批数,输入0结束,分别计算其中整数的平均值和负数的平均值

#include<stdio.h>
int main()
{
	int a,b,c,d,e;
	a==0;
	b==0;
	c==0;
	e==0;
	while(1)
	{
		scanf("%d",&d);
		if(d==0)
		{
			break;
		}
		else if(d<0)
		{
			b++;
			e+=d;
		}
		else
		{
			c++;
			a+=d;
		}
	}
	printf("正数的平均数为%f,负数的平均值为%f",(float)a/c,(float)e/b);
    return 0;
}

 知识点总结:正负数符合的条件,用if嵌套,注意平均数的表达。

 实验总结:赋出值为0,选择条件写编程各自求平均值。

4-7输入1000以内所有素数,每行10个,最后输出一个有多少个素数。

#include<stdio.h>
#include<math.h>
int main()
{
	int n=0,a,b,c,d;
	for(a=2;a<=1000;a++)
	{
		c=1;
		d=sqrt(a);
		for(b=2;b<=d;b++)
		{
			if(a%b==0)
			{
				c=0;
				break;
			}
		}
		if(c==1)
		{
			n++;
			if(n%10==0)
			{
				printf("%4d\n",a);
			}
			else
			{
                printf("%4d",a);
			}
		}
	}
	return 0;
}

 技术分享

知识点,实验总结:素数的因数只有它本身和1,首先选定c赋予两个值,c为1时说明为素数,反之,n表示素数的个数,与10除余,表示每十个一行。

4-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;
}

 技术分享

知识点,实验总结:注意找规律,通用公式,用for循环,嵌套。

 

第四次作业