• 第四次作业


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

          

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

    1、注意for循环语句的正确使用

    2、else前边必须有if

    3.a++与++a作用不同。

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

    #include <stdio.h>
    int main()
    {
        int x;
        float y;
        y=0;
        for(x=1;x<=100;x++)
        {
            if(x%2==1)
            {
                y=y+(1.0)/x;
            }
            else
            {
                y=y-(1.0)/x;
            }
        }
        printf("相加的%.2f
    ",y);
        return 0;
    }

    注意float型数据与int型数据的差别。

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

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

     

    当要求几个数据一行时,可以新定义一个量,在用量与每行的个数取余,当余数为0时,输出“ ”

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

    #include <stdio.h>
    int main()
    {
        int a,b,c,d;
        d=1;
        printf("请输入两个整数
    ");
        scanf("%d%d",&a,&b);
        for(c=1;c<=b;c++)
        {
            d=d*a;
        }
        printf("最后的值为%d",d);
        return 0;
     } 

    应把变量赋初值,否则会输出一个负数。

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

        char a;
        int b=0,c=0,d=0,e=0,other=0;
        printf("输入一串字符,以回车为结束标志
    "); 
        scanf("%c",&a);
        while(a!='
    ')
        {    
            if(a>='A'&&a<='Z')
            {
                b=b+1;
            }
            else if(a>='a'&&a<='z')
            {
                c=c+1;
            }
            else if(a==' ')
            {
                d=d+1;
            }
            else if(a>='0'&&a<='9')
            {
                e=e+1;
            }
            else
            {
                other=other+1;
            }
            scanf("%c",&a);
        }
        printf("一共有%d个大写字母,%d个小写字母,%d个空格,%d个数字,有%d个其他字符",b,c,d,e,other); 
        return 0;
    }

    while()后不能加分号;

    ‘A’   ‘a’  '0',代表不同的数据,并不等同于其本身;

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

    #include <stdio.h>
    int main()
    {
        int a,s,d=0,f,g=0,h;
        float j,k;
        printf("请输入一串数字,输入0时结束
    ");
        scanf("%d",&a);
        if(a==0)
        {
            printf("输入数据错误"); 
        }
        else
        {
            while(a!=0)
            { 
            if(a>0)
            {
                s=s+a;
                d++;
            }
            else
            {
                f=f+a;
                g++;
            }
            scanf("%d",&a);
            }
            j=(float)s/d;
            k=(float)f/g;
            if(g==0)
            printf("正数的平均数是%.3f",j);
            else if (d==0)
            printf("负数的平均值是%.3f",k);
            else
            printf("正数的平均数是%.3f,负数的平均值是%.3f",j,k);
        }
        return 0;
    }

    float型数据用“%f”

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

    #include <stdio.h>
    int main()
    {
        int a,b,c;
        for(a=2;a<=1000;a++)
        {
            for(b=2;b<a;b++)
            {
                if(a%b==0)
                break;
            }
            if(b>=a)
            {
                printf("%03d  ",a);
                c++;
                if(c%10==0)
                printf("
    ");
            }
        }
        printf("
    一共%d个素数",c);
        return 0;
    }

     

    当一个循环陷入死循环时,可以用break语句将其跳出

    8.打印下列图形

                 

    #include <stdio.h>
    int main()
    {
        int a,b,c;
        for(a=1;a<=5;a++)
        {
            for(c=5;c>=5-a;c--)
            printf(" ");
            for(b=9;b>=2*a-1;b--)
            printf("*");
            printf("
    ");
        }
        return 0;
    }

    找规律对于程序编译同样有帮助。

    知识点总结

    1、不同的循环结构可以相互嵌套

    2、死循环可以用break语句改正

    实验总结

    当循环次数已知时,计数控制的循环用for语句

    循环次数未知,有给定条件控制,用while语句

    循环体至少执行一次用do....while语句

    当循环复杂化时,可以用嵌套式循环

  • 相关阅读:
    君子藏器于身,伺时而动
    高级前端面试集锦
    ES6标准入门(第三版).pdf----推荐指数⭐⭐⭐⭐⭐
    《Vue.js实战》--推荐指数⭐⭐⭐⭐
    如何让vue自定义组件可以包裹内容,并且渲染出来,以及组件的组合使用
    vue里如何灵活的绑定class以及内联style
    为什么VUE注册组件命名时不能用大写的?
    在github上搭建一个静态的个人网站
    leetcode-6-basic
    leetcode-5-basic
  • 原文地址:https://www.cnblogs.com/456abc/p/6004371.html
Copyright © 2020-2023  润新知