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

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

          

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

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

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

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

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

    }
    }
    printf("%.2f\n",y);
    return 0;
    }

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

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

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

    #include<stdio.h>
    int main()
    {
        int a,b=0,c=0,sum1=0,sum2=0; 
        printf("输入一批数(正数和负数,输入0结束):"); 
        scanf("%d",&a);
        while(a!=0)
        {
            if(a>0)
            {
                sum1=sum1+a;
                b++;
            }
            else if(a<0)
            {
                sum2=sum2+a;
                c++;
            }
            scanf("%d",&a);
        }
        if(b!=0&&c!=0)
        {
            printf("正数的平均数为%.2f,负数的平均数为%.2f",(float)sum1/b,(float)sum2/c);
        }
        else if(b!=0&&c==0)
        {
            printf("正数的平均数为%.2f,没有输入负数",(float)sum1/b);
        }
            else if(b==0&&c!=0)
        {
            printf("负数的平均数为%.2f,没有输入正数",(float)sum2/c);
        }
        else
        {
            printf("没有输入数据");
        }
        return 0;
    }

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

    #include<stdio.h>
    int main()
    {
        int i,m,a=0,j=0;
        for(i=2;i<=1000;i++)
        {
            for(m=2;m<=i;m++)
            {
                if(i%m==0)break;
            } 
                if(i==m)
                {
                    printf("%4d",i);
                        a++;
                        j++;
                
                if(j%10==0)
                 {
                    printf("\n");
                 }
                }
        }
        printf("\n有%d个素数\n",a);
        return 0;
    }

    8.打印下列图形

                 

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

     知识点总结: 1.break是结束整个循环体,continue是结束单次循环

                       2.循环次数已知,选择计数控制的循环for语句;循环次数未知,由给定条件控制,选择条件控制的循环while语句;循环体至少要执行一次,选择do...while语句。

            3.while语句 先判断表达式,后执行循环体,循环体有可能一次也不执行 。 do...while语句先执行循环体,后判断表达式。

            4.++  -- 不能用于常量和表达式,如 5++   (a+b)++ 。                     ++i=>i=i+1     先加后使用   i++=>i=i+1  先使用后加

    实验总结:1. for,if,while后面没有分号,for语句括号中用分号隔开

          2. 累乘的sum初始值应该为一 ,不是零

         3.不要忘了赋初值

          4.想好循环的结构图,在根据图写程序

         5.注意循环的套用  ,{}的对应

  • 相关阅读:
    BZOJ2821 作诗(Poetize) 【分块】
    BZOJ2724 蒲公英 【分块】
    Codeforces 17E Palisection 【Manacher】
    BZOJ2565 最长双回文串 【Manacher】
    Codeforces 25E Test 【Hash】
    CODEVS3013 单词背诵 【Hash】【MAP】
    HDU2825 Wireless Password 【AC自动机】【状压DP】
    HDU2896 病毒侵袭 【AC自动机】
    HDU3065 病毒侵袭持续中【AC自动机】
    HDU2222 Keywords Search 【AC自动机】
  • 原文地址:https://www.cnblogs.com/wjm666/p/6009121.html
Copyright © 2011-2022 走看看