第四次作业

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

      

#include <stdio.h>
int main ()
{
    int x,y,i;
    y=0;
    printf("请输入一个整数");
    scanf("%d",&x);
    if(x%2==0)
    {
        for(i=2;i<=x;i=i+2)
        {
            y=y+i;
        }
        printf ("%d",y);
    }
    else 
    {
        for(i=1;i<=x;i=i+2)
        {
            y=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 ()
{
    int i;
    float y=0;
    for (i=1;i<=100;i++)
    {
        if (i%2==0)
        {
            y=y-(1.0)/i;
        }
        else
        {
            y=y+(1.0)/i;
        }
    }
    printf ("%.2f",y);
return 0;
}

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

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

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

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

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

#include <stdio.h>
int main ()
{
    char c;
    int a,b,m,n;
    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",a,b,m,n);
return 0;
}

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

#include <stdio.h>
int main () 
{
    int x,a=0,b=0,m=0,n=0;
    float average1,average2;
    printf ("请输入一批数字,输入零时结束");
    scanf ("%d",&x);
    if (x==0)
    {
        printf("错误");
    }
    while (x!=0)
    {
        if (x>0)
        {
            a=a+x;
            m++;
            average1=a/m;
        }
         else if(x<0)
         {
             b=b+x;
             n++;
             average2=b/n;
         }
          scanf("%d",&x);
    }
    printf ("正数的平均数为%.2f 负数的平均数为%.2f",average1,average2);
    return 0;
}

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

#include <stdio.h>
int main ()
{
    int m,n,flag=0,z=0;
    for (m=2;m<=1000;m++)
    {
        flag=0;
        for (n=2;n<m-1;n++)
        {
            if(m%n==0)
            {
                flag=1;
                break;
            }
        }
        if(flag==0)
        {
            printf(" %3d ",m);
            z++;
            if (z%10==0)
            {
                printf("\n");
            }
        }
    }
    printf ("总共有%d个素数",z);
    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<=2*(5-i)+1;j++)
        {
            printf ("*");
        }
        printf ("\n");
    }
    return 0;
}

实验总结:for循坏和while循坏的区别及格式

             =是赋值  ==是等于

知识点总结: 当循坏次数已知的时候 用 for

                 由给定条件控制,循环次数未知的时候,用 while

                 循坏体至少执行一次    用 do while 

                循坏语句的嵌套

原文地址:https://www.cnblogs.com/zpl0120/p/6011849.html