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

    一、实验内容

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

     

          

     

    代码:

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

     

     

     

    程序运行结果:

     

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

     

    代码:

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

    程序运行结果:

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

    代码:

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

    程序运行结果:

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

    代码:

    #include<stdio.h>
    int main()
    {
    char c;
    int a,b,d,e,other;
    a=0;
    b=0;
    d=0;
    e=0;
    other=0;
    printf("请输入一串字符,按回车结束:
    ");
    scanf("%c",&c);
    while(c!='
    ')
    {
        if(c>='A'&&c<='z')
        {
            a++;
        }
        else if(c>='a'&&c<='z')
        {
            b++;
        }
        else if(c==' ')
        {
            d++;
        }
        else if(c>='0'&&c<='9')
        {
            e++;
        }
        else
        {
            other++;
        }
        scanf("%c",&c);
    }
    printf("共有%d个大写字母,%d个小写字母,%d个空格,%d个数字,%d个其他字符",a,b,d,e,other);
    return  0;
    }

    程序运行结果:

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

    代码:

    #include<stdio.h>
    int main()
    {
    int x,a,b,c,d;
    a=0;
    b=0;
    c=0;
    d=0;
    scanf("%d",&x);
    while(x!=0)
    {
    	if(x>0)
    	{
    		a+=x;
    		c++;
    		
    	}
    	if(x<0)
    	{
    		b+=x;
    		d++;
    	}
    	scanf("%d",&x);
    }
    if(c==0&&d!=0)
    {
    	printf("正数的平均值为0,负数的平均值是%.2f",(float)b/d);			
    }
    else if(c!=0&&d==0)
    {
    	printf("正数的平均值为%.2f,负数的平均值是0",(float)a/c);
    }
    else if(c==0&&d==0)
    {
    	printf("正数的平均值为0,负数的平均值是0");
    }
    else if(c!=0&&d!=0)
    {
    	printf("正数的平均值为%.2f,负数的平均值是%.2f",(float)a/c,(float)b/d);
    }
    return 0;
    }

    程序运行结果:

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

    代码:

    #include<stdio.h>
    int main()
    {
    int i,m,num;
    num=0;
    pritf("1000以内的素数:
    ");
    for(i=2;i<=1000;i++)
    {
        for(m=2;m<i;m++)
        {
            if(i%m==0)
            {
                break;
            }
        }
        if(i<=m)
        {
            printf("%03d",i);
            num++;
            if(num%10==0)
            {
                printf("
    ");
            }
        }
    }
    printf("共有%d个素数",num);
    return 0;
    }

    程序运行结果:

    8.实验要求:打印下列图形

                 

    代码:

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

    程序运行结果:

     

    二、   本次课知识点总结

    1. 本次课学习了循环结构,那么,就三种循环的形式、执行过程、注意事项以及适宜的应用场合做总结。

    for 语句

    for(表达式1;表达式2;表达式3)

    {

       循环体语句

    }

    for语句中表达式可以部分或全部省略,但两个“;”不能省略。当省略表达式2时,因为缺少循环条件的判断,会形成无限循环。

    for语句中的表达式可以是任意有效的C语言表达式。

    表达式2一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。

    while 语句

    while(表达式)

     {

       循环体语句;

    }

    特点:

    先判断表达式,后执行循环体,循环体有可能一次也不执行

    do ~ while 语句

    do

    {

       循环体语句;

    } while(表达式);

    特点:

    先执行循环体,后判断表达式,至少执行一次循环体。

     

     

     

    循环次数已知

    计数控制的循环

    for语句

    循环次数未知

    由给定条件控制

    条件控制的循环

    while语句

    循环体至少要执行一次

    do…while语句

     

     

    2.break和continue区别何在?

     都是循环控制语句。

    break语句:在循环语句和switch语句中,终止并跳出循环体或开关体。

    break只能终止并跳出最近一层的结构

    break只能用于循环语句和switch语句中

    在循环语句中,break语句一般都是与if语句一起使用。

    while(表达式1)

    {

       语句组1

        if(表达式2)  break;

        语句组2

    }

    continue语句 :结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。

    continue语句只能用在循环语句中。 一般都是与if语句一起使用。

    while(表达式1)

       {

       语句组1

       if(表达式2)  continue;

       语句组2

       }

    continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

    3.从本次课开始,我们接触到了一些典型算法,对累加型问题和阶乘型问题进行总结,注意事项是什么?

    累加:

    和初始化为0或第一项

    关键是寻找累加和的构成规律(通项)

       1. 寻找累加项与循环变量之间的关系

       2. 寻找累加项前后项之间的关系     

    s=0;

    for( i=1 ;i<=n  ;i++  )

    {    

       s=s+通项;

     }

    阶乘:乘积初始化为1

    p=1;

    for( i=1 ;i<=n  ;i++  )

    {

        p=p*通项;

     }

    4.理解循环嵌套

    三种循环可互相嵌套,层数不限

    外层循环可包含两个以上内循环,但不能相互交叉。

    for( ; ;)

       {    ……

              do

              {   ……

              }while();

              ……

             while()

               {   ……

               }

              …...

      }

     

     

    三、实验总结

     1.变量一定要附初值。

     2.循环语句之间的逻辑关系一定要想清楚。

    3.注意0和o

    4.不能忘记取地址符。

     

     

  • 相关阅读:
    .net制作安装程序总结 dodo
    部署ASP.NET(包含.net framework 和MDAC) dodo
    (转).Net应用程序发布的解决方案[最新整理](可加桌面快捷、在程序中加自己的ICO及自动卸载等) dodo
    Eric的日期选择下拉列表小控件 dodo
    如何通过需要验证的邮件服务器发送邮件? dodo
    异常详细信息: System.Security.SecurityException: 不允许所请求的注册表访问权 dodo
    登陆模块防止恶意用户SQL注入攻击 dodo
    C#插入记录时单引号的处理 dodo
    System.Configuration命名空间下找不到ConfigurationManager类 dodo
    常用的.net日期控件 dodo
  • 原文地址:https://www.cnblogs.com/xxs812/p/6005146.html
Copyright © 2011-2022 走看看