• 第四次作业


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

          

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

    实验总结:注意中文标点符号和英文标点符号的混乱。

    知识点总结:if  else与for可以嵌套使用,但最好是每个后面都加大括号。

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

    #include <stdio.h>
    int main()
    {
        int i,j;
        double sum,m,n;
        for(i=1,m=0;i<=99;i+=2)
        {
            m+=1.0/i;
        }
        for(j=2,n=0;j<=100;j+=2)
        {
            n+=1.0/j;
        }
        sum=m-n;
        printf("%.2lf",sum);
        return 0;
    }

    实验总结:i为整型常量,m为实型常量,最简单的求1/i的方法是m=1.0/i。

    知识点总结:当循环次数已知时,用for语句。

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

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

    实验总结:1.当0作为除数时,结果会出现问题,运行不了或者出现乱码。

    2.一共有几个数需要放在循环的外边。

    知识点总结:闰年的表达方式是a%4==0&&a%100!=0||a%400==0。

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

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

    实验总结:y的初始值定义为1对乘法式子没影响。

    知识点总结:for语句是一种计数控制的循环。

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

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

    实验总结:1.最后的输出在循环的外边。

    2.字母可以表示为>='A'&&<='Z'||>='a'&&<='z'.

    知识点总结:1.while()的后边没有“;”do while的while后边带“;”。

    2.while的()中表示的是当不满足时才循环。

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

    #include <stdio.h>
    int main()
    {
        int number,i,j,m,n;
        double average1,average2;
        average1=0;
        average2=0;
        printf("请输入一批非零整数输入0结束:
    ");
        scanf("%d",&number);
        i=0;
        j=0;
        m=0;
        n=0;
        while(number!=0)
        {
            if(number>0)
            {
                i++;
                m+=number;
            }
            else
            {
                j++;
                n+=number;
            }
            scanf("%d",&number);
        }
        if(m==0&&n!=0)
        {
            average1=0;
            average2=(float)n/j;
        }
        else if(n==0&&m!=0)
        {
            average1=(float)m/i;
            average2=0;
        }
        else
        {
            average1=(double)m/i;
            average2=(double)n/j;
        }        
        printf("正数的平均数为%lf,负数的平均数为%lf:
    ",average1,average2);
        return 0;
    }

    实验总结:所有的未知变量都要赋给他一个值。

    知识点总结:while语句以及所有的循环语句都可与if else嵌套。

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

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

    实验总结:1.% 3d=最高位前的空位用0补充。

    2.程序还可以优化算到prime的开方即可,需加一个()=spar()

    知识点总结:素数的表达方式prime number%i(自增变量)!=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=9;j>=2*i-1;j--)
            {
                printf("*");
            }
            printf("
    ");
       }
       return 0;
    }

    实验总结:这方面的知识还不够熟练,需要多加练习。

    知识点总结:1.两个for语句嵌套外层控制行,内层控制列。

    2.内层循环变量与外层循环变量不能相同。

  • 相关阅读:
    UI自动化测试入门一:Python3+Selenium环境搭建
    Linux下限制进程的CPU利用率
    Linux下模拟CPU占用100%
    Java接口自动化——OkHttp框架
    Java接口自动化——Before/After注解、Parameters注解和DataProvider注解
    Java接口自动化——TestNG快速开始
    《重构 改善既有代码的设计》读书笔记-坏代码的味道
    linux-脚本问题汇总
    RocketMq源码学习-消息存储
    linux-文本处理-grep
  • 原文地址:https://www.cnblogs.com/lmlmlm/p/6013620.html
Copyright © 2020-2023  润新知