C语言第三次博客作业---单层循环结构

一、PTA实验作业

题目1

1.实验代码

  char sex;
  double h;
  scanf("%d\n",&N); 
  for(i=1;i<=N;i++){
    scanf("%c",&sex);
  if(sex=='F'){ 
  scanf("%lf\n",&h);
  h=h*1.09;
  printf("%.2f\n",h);}
  if(sex=='M'){
  scanf("%lf\n",&h);
  h=h/1.09;
  printf("%.2f\n",h);}
  } 

2. 设计思路

(1)定义整型变量N,i,字符型变量sex,浮点型变量h

(2)输入前来调查的用户数N

(3)用for语句执行循环N次

(4)如果性别为女性,输入女方的身高并计算

(5)如果性别为男性,输入男方的身高并计算

(6)输出情侣的最佳身高

3.本题调试过程碰到问题及解决办法

(1)刚开始是编译错误,把字符型变量定义成了整型变量,if语句里面少了等号和单引号,改正之后变成了答案错误

(2)先把代码复制到DEV上去运行,根据提示把语法错误改正,但在PTA提交每次都显示答案错误,无奈之下只好请了同学过来帮忙检查,竟然是因为我在for 语句后面加了分号

4.本题PTA提交列表

题目2

1.实验代码

 int n,a,i,s;
  scanf("%d %d",&a,&n);
  s=0;
  for(i=1;i<=n;i++)
      s=s*10+a*i;
  printf("s = %d",s);

2.设计思路

(1)定义变量i,a放输入的数,n放输入的个数,s放所有a的总和

(2)输入a和n

(3)给s赋初值为0

(4)执行循环计算s的值,当i>n时跳出循环

(5)输出s

3.本题调试过程碰到问题及解决办法

(1)刚开始有语法错误,后经过DEV改正,但是怎么调试答案都不正确,如上图所示,后来跟同学的代码对比了一下,发现并没有错误啊,仔细观察发现scanf()语句里面a和n的位置不一样,最后把a和n换过来答案就就正确了

4.本题PTA提交列表

题目3

1.实验代码

 int N,n,i,min;    //N存放输入的整数,n存放输入整数的个数,min存放输入的最小值//
  scanf("%d",&n);
   scanf("%d",&N);
   min=N;     //给最小值赋初值为N//
   for(i=1;i<=n;i++){  //执行循环//
   if(n==1)break;    //如果n=1结束循环//
   scanf("%d",&n);     //重新输入一个整数N//
   if(min>n)   //将输入的整数与min作比较//
   min=n;
   }
   printf("min = %d",min);  //输出最小值min//
   return 0;

2.设计思路

(1)定义变量N,n,i,min

(2)输入N,n

(3)给最小值赋初值

(4)如果输入的个数为1,结束循环

(5)重新输入一个整数N,判断最小值与输入整数的大小

(6)输出最小值

3.本题调试过程碰到的问题及解决办法

(1)逻辑不清楚导致编译错误,忘记了还有当输入的个数为1时循环结束,也没有赋初值

(2)解决办法还是一如既往地先用dev调试,如果还不对就问同学,因为有时候脑子会挂机,需要人指点

4.本题PTA提交列表

题目4

1.实验代码

 int N,n,i,number; //N存放猜测的最大次数,number存放所猜数,i计数,n存放随机数//
    scanf("%d %d",&n,&N);
    for(i=1;i<=N;i++){
        scanf("%d",&number);
        if(i==1&&number==n){
        printf("Bingo!\n");
        break;
        }
        else if((i==2||i==3)&&number==n){
        printf("Lucky You!\n");
        break;
        }
        else if(number<n&&number>0)
        printf("Too small");
        else if(number>n)
        printf("Too big\n");
        else if(i>3&&number==n){
        printf("Good Guess!\n");
        break;
        }
        else if(number<0){
        printf("Game Over\n");
        break;
        }
    if(number!=n&&i>N)
        printf("Game Over\n");
    }

2.设计思路

(1)定义变量N,n,i,number

(2)输入猜猜的最大次数N和随机数n,执行循环

(3)输入所猜的数number,如果i1&&numbern,输出Bingo

(4)如果i2||i3)&&number==n,输出Lucky you

(5)如果number<n&&number>0,输出Too small

(6)如果number>n,输出Too big

(7)如果i>3&&number==n,输出Good Guess

(8)如果number<0,输出Game Over

(9)如果number!=n&&i>N,输出Game Over

3.本题调试过程碰到的问题及解决办法

好像少了点什么,感觉该有的步骤都已经有了,但是改了又改,至今还是没有完全正确,运行结果如图所示,改得我眼睛都花了,希望看我代码的同志可以给出一点提示

4.本题PTA提交列表

二.截图本周题目集的PTA最后排名

三.本周学习总结

1.你学会了什么?

(1)本周感觉自己什么也没有学会,知道有循环结构这个东西,看书本上的题可以看懂,好像也可以做,但是自己做的时候就不会了,完全没有思路,不知如何下手,敲出来的代码永远都是编译错误

2.本周的内容,你还不会什么?

(1)不会的很多,例如题目复杂的时候定义变量都没有定义好,也没有定义全,总是缺胳膊少腿的,输入输出还好,但是中间什么时候该输入什么,什么时候该计算什么,怎么计算都不是很清楚,总是会少很多步骤,用DEV调试也不是很会,会添加查看,但是调试出来的东西不懂,不知道怎样才是正确的,找错误都是看那个×找的,简言之就是我还是不会用调试工具

3.分支结构上机考试总结

(1)上机考试一个题都没有做出来,因为题目很多,心里有点慌,再加上不是很懂,不知如何做起,总是要思考然后一步一步的改正很久,所以速度很慢

(2)后期只能慢慢来了,先把程序弄懂,然后再利用调试工具慢慢熟练起来

(3)对自己的成绩非常不满意,我想我要加强训练了,投入更多的时间来学习和敲代码,要做到独立思考,独立找错误,独立完成,不能每次都依赖别人帮忙

posted @ 2017-11-02 22:39  琼楼玉女  阅读(451)  评论(6编辑  收藏  举报