zoukankan      html  css  js  c++  java
  • 第四次

    一、实验内容

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

          

    #include<stdio.h>
    int main()
    {
        int x,y,i;
        printf("请输入一个数,如果是奇数计算1+3+...+n,如果是偶数则计算2+4+...+n\n") ;
        scanf("%d",&x);
        y=0;
        if(x<=0)
        {
            printf("输入错误\n");
        }
        else
        {
            if(x%2==0)
            {
                for(i=0;i<=x;i=i+2)
                {
                    y=y+i; 
                }
                printf("%d",y);
            }
            else if(x%2!=0)
            {
                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()
    {
        double a,b,c,i;
        a=0;
        b=0;
        for(i=1;i<=99;i=i+2)
        {
            a=a+1/i;
        }
        for(i=2;i<=100;i=i+2)
        {
            b=b-1/i;
        }
        c=a+b;
        printf("%.2lf",c);
        return 0;    
    }

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

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

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

    #include<stdio.h>
    int main()
    {
        int m,i;
        double x,y;
        y=1;
        printf("输入一个实数x和一个整数m,计算x的m次方,用空格分开\n") ;
        scanf("%lf%d",&x,&m);
        for(i=1;i<=m;i=i+1)
        {
            y=y*x;
        }
        printf("%lf",y);
        return 0;    
    }

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

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

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

    #include<stdio.h>
    int main()
    {
        double x,a,b,c,d,i,j;
        a=0;
        b=0;
        i=0;
        j=0;
        printf("请输入一批数(整数和负数,用回车分开,输入0结束)\n");
        while(x!=0) 
        {
            printf("请输入\n");
            scanf("%lf",&x);
            if(x>0)
            { 
                a=a+x;
                i=i+1;
            }
            else if(x<0)
            {
                b=b+x;
                j=j+1;
            }
            
        }
        c=a/i;
        d=b/j;
        if(i==0&&j!=0)
        {
            printf("没有输入正数,负数的平均数是%lf\n",d);
        }
        else if(j==0&&i!=0) 
        {
            printf("正数的平均数是%lf,没有输入负数\n",c);
        }
        else if(i==0&&j==0)
        {
            printf("没有输入数据\n");
        }
        else
        {
            printf("正数的平均数是%lf,负数的平均数是%lf\n",c,d);
        }
        return 0;    
    }

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

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

    8、打印下列图形

                 

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

    二、本次课实验点总结

    1、for语句、while语句和do...while语句的使用和区别

    for用在知道循环次数的时候,不知道循环次数的时候用while和do...while,

    do...while是必须执行一次

    2、简便写法

    i=i+1 → i++

    a=a+5 → a+=5

    3、在循环中,break是结束整个循环,continue是结束本次循环

    4、不推荐使用goto语句

    5、在判断一个数是否是质数时,用根号来节省运行时间

    6、循环嵌套时、外层循环一次,内层完成所有循环

    三、实验总结

    1、循环时,注意循环的边界,和循环一次计数的变量增加多少

    2、输出十个一换行,用次数和10求余,然后输出\n

    3、统计字符时,把最后的回车减去

    4、想清楚质数的判断条件

    5、输出倒三角时,找好规律

  • 相关阅读:
    正则基础之——反向引用
    zend framework 配置连接数据库
    Zend Framework Module之多模块配置
    zend framework 1.10项目配置与经典hello world
    CSS3 @font-face
    js跳转页面方法(转)
    CSS中怎么让DIV居中
    HTML段落自动换行的样式设置
    PHPEXCEL实例-导出EXCEL
    移动端框架篇-控制父容器的滑屏框架-slip.js
  • 原文地址:https://www.cnblogs.com/accelerator123/p/5998674.html
Copyright © 2011-2022 走看看