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

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

          

    #include<stdio.h>
    int main()
    {
        int x,y,i;
        char z;
        while(1)
        {
        printf("请输入一个正整数
    ");
        scanf("%d",&x);
        for(y=0,i=0;i<=x;i+=2)
        {
            if(x%2==0)
            {
                y=y+i;
            }
            else
            {
                if(i==0)
                {
                    y+=1;
                    i=1;
                }
                else
                {
                    y=y+i;
                }
            }
        }
        printf("%d
    ",y);
        scanf(" %c",&z);
        if(z=='y')
        {
            continue;
        }
        else
        {
            break;
        }
        }
    }

    第一个实验,主要运用的是continue和break的区别。

    continue是结束循环之后重新循环,break则是跳出。

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

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

    这个实验主要注意整形和实数的转换。

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

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

    注意换行指令的位置。

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

    #include<stdio.h>
    int main()
    {
        int m,i;
        float x,y;
        scanf("%f %d",&x,&m);
        i=0,y=1;
        while(i<m)
        {
            y=y*x;
            i++;
        }
        printf("%f",y);
     } 

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

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

    注意缓存区的空格。

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

    #include<stdio.h>
    int main()
    {
        int a,b,c,d,e;
        float m,n;
        b=0,c=0,d=1,e=1;
        while(1)
        {
            scanf("%d",&a);
            if(a==0)
            {
                break;
            }
            else
            {
                if(a>0)
                {
                    b=b+a;
                    d++;
                }
                else
                {
                    c=c+a;
                    e++;
                }
            }
        }
        if(d-1==0)
        {
            printf("没有正数");
        }
        else
        {
            m=(float)b/(d-1); 
            printf("%.2f
    ",m);
        }
        if(e-1==0)
        {
            printf("没有负数");
        }
        else
        {
            n=(float)c/(e-1);
            printf("%.2f
    ",n);
        }
        
    }

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

    #include<stdio.h>
    int main()
    {
        int i,n,flag,m=0;
        printf("将列出一千以内的所有素数。
    ");
        for(i=2;i<=1000;i++)
        {
            for(n=2;n<=i-1;n++)
            {
                if(i%n==0)
                {
                    flag=1;
                    break;
                }
                else
                {
                    flag=0;
            } 
            }
            if(flag==0)
            {
                printf("%3d   ",i);
                m++;
                if(m%10==0)
                {
                    printf("
    ");
                }
            }
        }
        return 0;
    } 

    8.打印下列图形

                 

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

    说真的,一开始是图例的图形,嫌不正给改成这样了,再一看题......

    二、知识点总结

    1、continue和break的运用。两个语句的特点已经在上面提到了。灵活的运用可以实现对程序及循环是否终止的控制。

    2、显示排版“外行内列”思想。

    三、实验总结

    1、好好审题......以及下次早点做(各位对不起)

    2、注意字符型变量“一个个读”的特点。

    3、注意缓存区。

  • 相关阅读:
    Task Schedule
    Number Game
    CDQ分治
    Friends and Subsequences
    HDU5266 pog loves szh III
    P1593 因子和
    求一个数的欧拉函数的优化
    Grandpa's Estate POJ
    LightOJ
    Paint The Wall HDU
  • 原文地址:https://www.cnblogs.com/wxc123/p/6014164.html
Copyright © 2011-2022 走看看