第四次作业

 一,

实验要求:编写程序,输入一个整数x,按照下式输出对应的y值。

 代码:

# include <stdio.h>
int main ()
{
   int x,y=0,i;
   printf("请输入一个整数:\n");
   scanf ("%d",&x);
   if (x%2==0)
   {
      for (i=2;i<=x;i+=2)
      {
         y=y+i;
      }
      printf ("%d为偶数,y为%d",x,y);
   }
   else if (x%2!=0)
   {
       for (i=1;i<=x;i+=2)
       {
           y=y+i;
       }
       printf("%d为奇数,y为%d",x,y);
    }
   return 0;

}

程序运行结果:

二,

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

代码:

# include <stdio.h>
int main ()
{
    int x;
    double a,b,c;
    a=0;
    b=0;
    for (x=1;x<=99;x+=2)
        a=a+1.0/x;
    for (x=2;x<=100;x+=2)
        b=b-1.0/x;
    c=a+b;
    printf ("%.2lf",c);
    return 0;
}

程序运行结果:

三,

实验要求:输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。

代码:

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

程序运行结果:

四,

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

代码:

#include <stdio.h>
int main()
{
    float x,y=1;
    int m,n;
    printf("请输入底数\n");
    scanf("%f",&x);
    printf("请输入指数\n");
    scanf("%d",&m);
    for(n=1;n<=m;n++)
    {
        y=y*x;
    }
    printf("%.2f",y);
    return 0;
}

程序运行结果:

五,

实验要求:输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。

代码:

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

程序运行结果:

六,

实验要求:输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,

代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x,sum1=0,sum2=0,aa=0,bb=0;
    float ping1,ping2;
    printf("输入一串数字,以0为结束\n");
    scanf("%d",&x);
    while(x!=0)
    {
        if(x>0)
        {
            sum1=sum1+x;
            aa=aa+1;
        }
        else if(x<0)
        {
            sum2=sum2+x;
            bb=bb+1;
        }
        scanf("%d",&x);    
    }
    ping1=(sum1*1.0)/(aa*1.0);
    ping2=(sum2*1.0)/(bb*1.0);
    if(bb==0)
    {
        if(aa==0)
        {
            printf("正数平均值无,负数平均值无\n");
            exit(0);
        }
        else 
        {
            printf("正数平均值为%.2f,负数平均值没有\n",ping1);
            exit(0);
        }
    }
    else if(aa==0)
    {
        if(bb==0)
        {
            printf("正数平均值无,负数平均值无\n");
            exit(0);
        }
        else 
        {
        printf("正数平均值没有,负数平均值为%.2f\n",ping2);
        exit(0);
        }    
    }
    printf("正数平均值为%.2f,负数平均值为%.2f\n",ping1,ping2);
    return 0;
}

程序运行结果:

七,

实验要求:输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)

代码:

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

程序运行结果:

 

 八,

实验要求:打印下列图形 

 

代码:

#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<=-2*i+11;j++)
        printf("*");
        printf("\n");
    }
    return 0;
}

 

程序运行结果:

 

 本次课知识点总结

1,使用while形成死循环

2,要熟练运用while和for的判断 

3,要注意错误判断,如求平均数的实验

4,要可以自己找规律,如素数,星号倒三角的实验

实验总结

1,注意i++和++i的区别

2,平均数实验要注意不能除以0

posted @ 2016-10-30 21:36  苦狂上  阅读(148)  评论(1)    收藏  举报