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

    作业四

       一、实验内容 :

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

          

    #include<stdio.h>
    int main()
    {    int x,y=0,i;
        scanf("%d",&x) ;
        if(x%2==0)
        {for(i=2;i<=x;i=i+2)
            {
                 y=y+i;
            }
            printf("%d",y);
        }
        else
        {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()
    {    int i;
        double y=1;
        for(i=2;i<=100;i++)
        {if(i%2==0)
            {
                y=y-1.0/i;
            }
         else 
             {
                 y=y+1.0/i;
             }    
        }
        printf("%.2f",y);
        return 0;
    } 

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

    #include<stdio.h>
    int main()
    {    int x,y=0;
        for(x=2000;x<=3000;x++)
        {
            if((x%4==0&&x%100!=0)||(x%400==0)) 
            {
                printf(" %d",x);y=y+1;
            }
            if(y%10==0)
            {
                printf("\n");
            }
        }
        printf("\n %d",y);
        return 0;
    } 

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

    #include<stdio.h>
    int main()
    {    int m,i;
        float y=1.0,x;
        printf("输入x与m的值,用逗号隔开。\n");
        scanf("%f,%d",&x,&m);
        for(i=1;i<=m;i++)
        {
            y=x*y;
        }
        printf("%.2f",y);
        return 0;
    }

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

    #include<stdio.h>
    int main()
    {     int a=0,b=0,c=0,d=0,e,i;
        printf("输入字符:\n");
        char x; 
        do
        {
        for(i=0;i>=0;i++)
        {    
            scanf("%c",&x);
            if(x=='\n')
            {
                break;
            }
            else if(x>='A'&&x<='z')
            {
                a++;
            }
            else if(x==' ')
            {
                b++;
            }
            else if(x>='0'&&x<='9')
            {
                c++;
            }
               else if(x!='\n')
               {
                   d++;
            }
        }
        }while(x!='\n');
        printf("字母%d个,空格%d个,数字%d个,其他字符%d个\n",a,b,c,d);
        return 0;
    } 

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

    #include<stdio.h>
    int main()
    {    int n1=0,n2=0,m,sum1,sum2;
        char x;
        printf("请输入数字\n");
        scanf("%d",&m); 
        do
        {    if(m>=0)
            {
                sum1=sum1+m;
                scanf("%d",&m);
                n1++;
                
            }
            else 
            {
            sum2=sum2+m;
            scanf("%d",&m);
            n2++; 
            }    
        }    
        while(m!=0);
        if(n1==0&&n2==0)
        {
            printf("正数平均数为0,负数平均数也为0"); 
        }
        else if(n1!=0&&n2==0)
        {
            printf("正数平均数为%.2f,负数平均数为0",(double)sum1/n1); 
        }
        else if(n1==0&&n2!=0)
        {
            printf("正数平均数为0,负数平均数为%.2f",(double)sum2/n2); 
        }
        else
        {
            printf("正数平均数为%.2f,负数平均数为%.2f",(double)sum1/n1,(double)sum2/n2); 
        }
        return 0;
    }

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

    #include<stdio.h>
    #include<math.h>
    int main()
    {    int i1,i2,m=0,k,x,flag=0;
            for(i1=2;i1<=1000;i1++)
            { x=sqrt(i1);
            flag=0;
                for(i2=2;i2<=x;i2++)
                {
                    if(i1%i2==0)
                    {
                        flag=1;
                        break;
                    }
                } 
                if(flag==0)
                {
                    printf(" %03d",i1);
                    m++;
                    if(m%10==0&&m!=0)
            {
                printf(" \n");
            }
                }
            
            
            } 
            printf("\n 素数有%d个",m);
            return 0;
    } 

    8.打印下列图形

                 

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

    二、本次课知识点总结:

    for循环,while循环,do while循环的使用以及嵌套,程序运行可以使用无限循环,但需要注意循环的退出,,continue与break有区别,前者结束本次循环,后者结束整个循环。

    三、实验总结(实验中遇到的问题及解决方法)

    1.要注意素数的判断,利用标记变量,并且循环嵌套。

    2.正负数求平均数时要注意合法判断,因为可能没有正数或者没有负数。

    3.输出图案时要注意外行内列,以及每行空格和星号的个数。

    4.回车也算字符,注意限定条件else if(字符!='\n')。

    5.用float输入的变量要用%f。记得保留小数。

  • 相关阅读:
    Tensorflow入门:Linear Regression
    日语动词变形总结
    序列模型第二周作业2:Emojify!
    序列模型第二周作业1:Operations on word vectors
    序列模型第一周作业3: Improvise a Jazz Solo with an LSTM Network
    序列模型第一周作业2: Character level language model
    序列模型第一周作业1: Building your Recurrent Neural Network
    Bidirectional RNN (BRNN)
    Long Short term memory unit(LSTM)
    propertyGrid使用
  • 原文地址:https://www.cnblogs.com/mty1997/p/5996398.html
Copyright © 2011-2022 走看看