• 第四次实验作业


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

          

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

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

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

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

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

     

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

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

     

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

    #include<stdio.h>
    int main()
    {
        int a,b,c,d,e;
        b=0;
        c=0;
        d=0;
        e=0;
        printf("请输入一批数\n");
        scanf("%d",&a);
        while(1)
        {
            if(a>0)
            {
                b+=a;
                e++;
            }
            else if(a<0)
            {
                d+=a;
                c++;
            }
            else if(a==0)
            break;
        scanf("%d",&a);
        }
        if(e==0&&c==0)
        {
            printf("没有结果\n"); 
        }
        else if(e==0&&c!=0)
        {
            printf("正数的平均值为0,负数的平均数为%f\n",(float)b/e);
        }
        else if(e!=0&&c==0)
        {
            printf("正数的平均值为%f,负数的平均值为0\n",(float)d/c);
        }
        else if(e!=0&&c!=0)
        {
              printf("正整数的平均数为%f,负数的平均数是%f",(float)d/c,(float)b/e);
        }
        return 0;
    } 

     

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

    #include<stdio.h>
    int main()
    {
        int i,n,z=0,flag=0;
        for(i=2;i<=1000;i++)
        {
            for(n=2,flag=0;n<=i-1;n++)
            {
                if(i%n==0)
                {
                    flag=1;
                    break;
                }
            }
            if(flag!=1)
            {
                printf("%4d ",i);
                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;
    }

    本次课知识点总结:

    1.循环次数已知的时候用for语句,循环次数未知的时候用whlie语句。

    2.break在循环语句和switch语句中,终止并跳出循环体或开关体。

    3.break只能终止并跳出最近一层的结构。

    4.continue语句只结束本次循环,而不是终止整个的执行。而break语句则是结束整个循环过程,不在判断执行循环的条件是否成立。

    实验总结(实验中遇到的问题及解决方法):

    1.记住开始时要附初始值。

    2.for和whlie语句后边没有分号。

    3.明确每个值所代表的意义。

    4.循环体中应有是循环趋向结束的语句。

    5.写代码前可以先写一个执行流程。

  • 相关阅读:
    想开始学习易语言
    又是一天过去了
    希望疫情早点过去
    你们都是在哪里找买软件框架的
    Leetcode 538. 把二叉搜索树转换为累加树
    Leetcode 543. 二叉树的直径 树的遍历
    Leetcode 347. 前 K 个高频元素
    Leetcode 337. 打家劫舍 III
    工作小记:企业微信 嵌H5页面 用户权限获取匹配
    (十一)React Ant Design Pro + .Net5 WebApi:后端环境搭建IdentityServer4(三)持久化
  • 原文地址:https://www.cnblogs.com/wy97/p/5994087.html
Copyright © 2020-2023  润新知