第四次作业

1.编写程序,输入一个整数x,按照下式输出对应的y值。

      

#include <stdio.h>
int main()
{
	int x,i,sum=0;
	printf("输入x:");
	scanf("%d",&x);
	if(x%2!=0)
	{
		for(i=1;i<=x;i+=2)
		{
			sum+=i;
		}
		printf("%d",sum);
	
	}
	else
	{	
		for(i=2;i<=x;i+=2)
		{
			sum+=i;
		}
		printf("%d",sum);
	}
	return 0;
}

  

2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。

#include <stdio.h>
int main()
{
  int i; float a=0,b=0,result; for(i=1;i<=99;i+=2) { a+=1.0/i; } for(i=2;i<=100;i+=2) { b+=1.0/i; } result=a-b; printf("%.2f\n",result); return 0; }

  

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

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

  

4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。

#include<stdio.h>
int main()
{
    float x,y=1;
    int m,i;
    printf("请输入一个实数x和整数m");
    scanf("%f,%d",&x,&m);
    if(m>=0)
    {
        for(i=1;i<=m;i++) 
        {
            y=y*x;
        }
    else 
    {
        for(i=-1;i>=m;i--)
        {
            y=1/x*y;
        }
    }
    printf("%f",y);
    return 0;
}

  

  

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

#include <stdio.h>
int main()
{
   char p;
	int a=0,b=0,c=0,d=0;
	printf("输入一串字符:");
	scanf("%c",&p);
	while(p!='\n')
	{
		if(p>='a'&&p<='z'||p>='A'&&p<='Z')
		a++;
		else if(p>'0'&&p<'9')
		b++;
		else if(p==' ')
		c++;
		else
		d++;
		scanf("%c",&p);
		
	}
	
	printf("字母有%d个,数字有%d个,空格有%d个,其他字符有%d个",a,b,c,d);
	return 0;	
}

  

6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,

#include <stdio.h>
int main()
{
	int x,i=0,k=0,sum1=0,sum2=0;
	float average1,average2;
	printf("输入一批数字");
	scanf("%d",&x);
	while(x!=0)
	{
		if(x>0)
		{
			i++;
			sum1=sum1+x;
			average1=sum1/i;
		}
		else 
		{
			k++;
			sum2=sum2+x;
			average2=sum2/k; 
        }
        scanf("%d",&x);
	}
	if(i==0&&k!=0)
	{
		printf("没有正数,负数的平均数为%.2f",average2);
	}
	else if(i!=0&&k==0)
	{
		printf("没有负数,正数的平均数为%.2f",average1);
	}
	else if(i==0&&k==0)
	{
		printf("没有数字");
	}
	else
	{
		printf("正数的平均值为%.2f,负数的平均值为%.2f",average1,average2);
	 } 
	return 0;
	
	
}

  

7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)

#include<stdio.h>
int main()
{
    int i,j,g=0;
    for(i=2;i<=1000;i++)
    {
        for(j=2;j<=i;j++)
        {
            if(i%j==0)
            {
            	break;
            }
        }
        if(j==i)
        {
            printf("%3d ",i);
            g++;
            if(g%10==0)
        {
            printf("\n"); 
        }
        }
    }
  printf("一共有%d个素数",g); 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.注意break与continue的区别,brake结束循环continue结束本次循环。

     2.注意while与for语句与do...while语句的区别。

              3.注意观察题目的规律。

              4.注意细节,for语句的嵌套等。

知识点总结:1.三种循环的形式丶执行过程丶注意事项以及适宜的场所。

                 2.理解区分break和continue的使用。

                 3.循环嵌套的使用。

      4.break一般与if语句和switch语句连用。 

原文地址:https://www.cnblogs.com/a378/p/5998835.html