• 第四次作业 x


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

          

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

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

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

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

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

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

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

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

    #include<stdio.h>
    int main()
    {
        int a,num1=0,num2=0; 
        float sum1=0,sum2=0; 
        printf("请输入数,输入0结束:\n");
        scanf("%d",&a);
        while(a!=0)
        {
            if(a>0)
            {
                num1++;
                sum1+=a;
            }
            else
            {
                num2++;
                sum2+=a;
            }
        scanf("%d",&a);
        }
        if(num1==0)
        {
            num1=1;
        }
        if(num2==0)
        {
            num2=1;
        }
        printf("正数的平均值为%6.2f\n负数的平均值为%6.2f\n",sum1/num1,sum2/num2);
        return 0;
    }

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

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

    8.打印下列图形

                 

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

    二、本次课知识点总结

    1.第二小题中要注意怎么出现的一正一副;

    2.在闰年和素数题中都有十个换行,要注意写上求个数的变量;

    3.要注意求闰年的方法(i%4==0&&i%100!=0||i%400==0);

    4.注意区分使用for和while,while则是不知道循环次数但又有条件限制,for是知道了循环次数;

    5.在while循环那注意在开始循环前写的scanf是用来判断while那的那个条件在循环内容完了之后再写一个scanf 这个才是符合条件后的循环;

    6.注意换行那个是在哪一个条件里边写;

    7.打印三角形那个题输入*要倒着想,从第九个开始,跟正着的三角形不一样;

    8.素数那个题用到了标记变量,要知道怎么使用。

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

    1.字符那题注意要加单引号;

    2.闰年那题为了看的整齐,要控制宽度,所以输出应该是%3d;

    3.for和while之后都不加封号;

    4.不要忘记切换输入法,有时候输完字之后忘记切换,则输入的符合都是错的;

    5.写循环的时候要把循环的语句写对了,不要写错。

  • 相关阅读:
    geoserver发布地图服务WMTS
    geoserver发布地图服务WMS
    geoserver安装部署步骤
    arcgis api 3.x for js 入门开发系列十四最近设施点路径分析(附源码下载)
    arcgis api 3.x for js 入门开发系列十三地图最短路径分析(附源码下载)
    cesium 之自定义气泡窗口 infoWindow 后续优化篇(附源码下载)
    arcgis api 3.x for js 入门开发系列十二地图打印GP服务(附源码下载)
    arcgis api 3.x for js 入门开发系列十一地图统计图(附源码下载)
    arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)
    arcgis api 3.x for js入门开发系列九热力图效果(附源码下载)
  • 原文地址:https://www.cnblogs.com/zj1220/p/6001626.html
Copyright © 2020-2023  润新知