码迷,mamicode.com
首页 > 编程语言 > 详细

c语言第六次作业

时间:2017-11-18 23:40:54      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:循环   条件   图片   win   src   正整数   scanf   编写   sum   

(一)改错题
1、错误信息:技术分享图片
错误原因:do while的形式错了
改正方法:while( item < eps)后加上分号 。
2、错误信息:技术分享图片
错误原因:最后一项的绝对值小于eps结束,要想要循环进行应该>=eps
改正方法:把item < eps改成item>=eps.
3、错误信息:技术分享图片
错误原因:item定义得是double类型
改正方法:把1改成1.0
4、错误信息:技术分享图片
错误原因:item定义得是double类型
改正方法:输入把%f改成%lf.
(二)学习总结
1.while(1)和for(;;)是无限循环,用break.
2.(1)循环次数已知,用for语句。
技术分享图片
(2)循环次数未知,但循环条件在进入循环时明确,用while语句。
技术分享图片
(3)循环次数未知,且循环条件在进入循环时未知,需要在循环体中明确,用do while语句。
技术分享图片
3.(1)for语句

#include <stdio.h> 
int main(void)
{
 int  n,i,sum;
 double average;
 sum=0;
 i=1;
 scanf("%d",&n);
 for(; ;)
 {
    if(n!=-1)
    {
        sum=sum+n;
        i++;
    }
    else
    {
        break;
    }
    scanf("%d",&n);
 }
 average=(double)sum/i;
 printf("%f",average);
 return 0;
}

(2)while语句

#include <stdio.h>
int main(void)
{
 int n,i,sum;
 double average;
 n=0;
 sum=0;
 i=0;
 while(n!=-1)
 {
    scanf("%d",&n);
    sum=sum+n;
    i++;
 }
    average=(double)sum/i;
    printf("%f",average);
    return 0;
}

(3)do while语句

#include <stdio.h>
int main(void)
{
 int n,sum,i;
 double average ;
 sum=0;
 i=1;
 scanf("%d",&n);
 do
 {
    sum=sum+n;
    i++;
           scanf("%d",&n);      
 }while(n!=-1);
 average=(double)sum/i;
 printf("%f",average);
 return 0;
}

4.(1)技术分享图片
break是不符合条件,直接跳出循环
(2)技术分享图片
continue是不符合条件,结束本次循环。
(三)实验总结

  1. 求给定精度的简单交错序列部分和
    (1)题目
    本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。
    (2)流程图
    技术分享图片
    技术分享图片
    (3)源代码

    include

    include

    int main(void)
    {
    int n;
    double eps,sum,b,c;
    scanf("%lf",&eps);
    n=1;
    sum=0;
    c=1;
    if(c<=eps)
    {
    sum=1;
    }
    else
    {
    while(fabs(c)>eps)
    {
    b=3.0n-2;
    c=1.0/b
    pow(-1,n-1);
    sum=sum+c;
    n++;

    }
    }

    printf("sum = %f",sum);
    return 0;

    }

(4)实验分析
问题1:运行不对
原因:用eps于eps相比较 了
解决办法:重新定义一个量与eps比较。
(5)本题PTA提交列表
技术分享图片

  1. 猜数字游戏
    (1)题目
    猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
    (2)流程图
    技术分享图片
    技术分享图片
    (3)源代码

    #include

      }
      else if(i<a)
      {
          printf("Too big\n");
    
      }
      else
      {
    
          if(n==1)
          {
              printf("Bingo!\n");
              break;
          }
          else if(n>1&&n<=3)
          {
              printf("Lucky You!\n");
              break;
          }
          else if(n>3&&n<=N)
          {
              printf("Good Guess!\n");
              break;
          }
          else
          {
              printf("Game Over\n");
              break;
          }
      }

    }
    return 0;
    }

(4)实验分析
问题1:编译错误
原因:第一个else 就是a=b的意思,我在里面判断的时候又写了一遍a=b.
解决办法:把b=a去掉
(5)本题PTA提交列表
技术分享图片

  1. 求奇数和
    (1)题目
    本题要求计算给定的一系列正整数中奇数的和
    (2)流程图
    技术分享图片
    (3)源代码

    include

    int main(void)
    {
    int a,sum;
    sum=0;
    scanf("%d",&a);
    do
    {

     if(a<0)
     {
         break;
     }
     else if(a%2!=0)
     {
         sum=sum+a;
    
     }
     scanf("%d",&a);

    }
    while(a>0);
    printf("%d",sum);
    return 0;
    }
    (4)实验分析
    问题1:编译错误
    原因:while(a>0)后面应该有分号
    解决办法:while(a>0);
    (5)本题PTA提交列表
    技术分享图片
    (四)博客互评
    1,姚纪远:http://www.cnblogs.com/yjy751522356/p/7838296.html
    2.王映丹:http://www.cnblogs.com/windsky-1999/p/7838107.html
    3.卢玉:http://www.cnblogs.com/luyu0322-/p/7846404.html

c语言第六次作业

标签:循环   条件   图片   win   src   正整数   scanf   编写   sum   

原文地址:http://www.cnblogs.com/karry-5201314/p/7846648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!