博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言第三次作业
阅读量:5846 次
发布时间:2019-06-18

本文共 3186 字,大约阅读时间需要 10 分钟。

一·PTA实验作业

题目一:最佳情侣身高

1.实验代码

int N,i;//N为输入次数,i用于调整循环次数//    double high,result;//high为用户身高,result为最佳情侣身高//    char op;    scanf("%d",&N);    getchar();    for(i=1;i<=N;i++){        scanf("%c %lf",&op,&high);        getchar();    if(op=='M'){        result=high/1.09;        printf("%.2f\n",result);    }    else if(op=='F'){        result=high*1.09;        printf("%.2f\n",result);    }    }

2.设计思路

  • 第一步,定义N,i,high,result等变量,其中N为输入次数,i用于调整循环次数,high为用户身高,result为最佳情侣身高。
  • 第二步,输入N,使用for循环语句,输入用户身高。
  • 第三步,如果用户为M,result=high/1.09。否则result=high*1.09。
  • 第四步,输出答案。

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

1233242-20171102193129170-1853199786.jpg

1233242-20171102193137873-1346393827.jpg

1233242-20171102193147404-910860717.jpg

scanf语句放错位置,输不出答案,调试的时候连M都打不进去,改正后,出现一个新问题,只能输入一次语句,于是又添了一个getchar()

4.本题PTA提交列表

1233242-20171102193545482-1729490422.png

1233242-20171102193618138-1548749250.png

题目二:特殊a串数列求和

1.实验代码

int a,n,sum,i,j;//a,n为所输入的数据,sum是求的和,i用于调整循环次数,j用于赋值为a //    scanf("%d %d",&a,&n);    sum=0;    j=a;    for(i=0;i

2.设计思路

  • 第一步,定义a,n,sum,i,j等变量,其中a,n为所输入的数据,sum是求的和,i用于调整循环次数,j用于赋值为a。
  • 第二步,输入a,n,同时将sum的初值赋值为0,将j赋为a的值,用于后续的计算
  • 第三步,使用for循环语句,公式为sum=sum+a,a=j+a*10。
  • 第四步,输出sum.

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

1233242-20171102184910810-1684836253.jpg

刚开始直接写a=a*10+a,使得a的值一直在变化,故而答案不对

1233242-20171102184924623-860646164.jpg

1233242-20171102184936420-630636491.jpg

1233242-20171102184945310-1945114255.jpg

后来我就定义了一个j来存放a的值,累加和记为sum,答案正确了。

4.本题PTA提交列表

1233242-20171102185614357-644590171.png

题目三:找出最小值

1.实验代码

int n,number,min,i;//n为输入的次数,number为输入的数据,min为最小值,i用于调整循环次数 //    scanf("%d",&n);    min=n;    for(i=1;i<=n;i++){        scanf("%d",&number);        if(min<=number){            min=min;        }        else if(min>number){            min=number;        }    }    if(n==1){        min=number;    }    printf("min = %d",min);        return 0;}

2.设计思路

  • 第一步,定义n,number,min,i等的变量,其中n为输入的次数,number为输入的数据,min为最小值,i用于调整循环次数。
  • 第二步,输入n,且将min的值先赋值为n。
  • 第三步,使用for循环语句,输入number,将min与number相比较,每次都将min赋值为更小的那一个,直至退出循环。
  • 第四步,当n等于1时,将min赋值为number
  • 第五步,输出min。

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

1233242-20171102185808716-1810509012.jpg

1233242-20171102185832060-559125612.jpg

1233242-20171102185840998-949900301.jpg

1233242-20171102185849576-2077064401.jpg

一开始,我的scanf语句放在了for语句前,所以循环一开始就从第二个值开始输入,跳过了第一个数据,后来又忘了当n等于1的情况,PTA提交的时候发现并改正。

4.本题PTA提交列表

1233242-20171102190628857-1592161170.png

题目四:猜数字游戏

1.实验代码

int yournumber,mynumber,N,i;//yournumber为用户输入数据,mynumber为被猜数,N为猜的最多次数,i用于调整循环次数//     scanf("%d%d",&mynumber,&N);    for(i=1;i<=N;i++){        scanf("%d",&yournumber);        if(yournumber<0){            printf("Game Over");            break;        }        else if(yournumber>mynumber){            printf("Too big\n");        }        else if(yournumber
1&&i<=3&&yournumber==mynumber){ printf("Lucky You!"); break; } else if(i>3&&yournumber==mynumber){ printf("Good Guess!"); break; } } if(i>N){ printf("Game Over"); }

2.设计思路

  • 第一步,定义yournumber,mynumber,N,i,其中yournumber为用户输入数据,mynumber为被猜数,N为猜的最多次数,i用于调整循环次数。
  • 第二步,输入number和n.
  • 第三步,使用for循环语句,按题目要求输出答案。

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

1233242-20171102190844591-795408226.jpg

一是有两个too big 和too small语句都没写,二是scanf语句写在在for语句最后一行而且忘了加&,三是有些语句没有写break,所以调试的时候总出现已停止工作。如图是我第一次调试的截图,后来忘了截。

4.本题PTA提交列表

1233242-20171102191812904-1978908054.png

二、本周PTA排名

1233242-20171102191932545-113041743.png

三、本周学习总结

1.我学会了什么?

  • 学会了怎么使用调试工具一步步追踪变量的值,由此推算或找出错误。
  • 我发现在使用循环结构时,一进入语句就已经输入了number,所以我的scanf语句要放在循环语句的最后面。然后这就得特别注意循环次数的控制,否则最后一次可能number输入导致出错。
  • 学会了一些新的语句,while,do-while的使用。

    2.我还不会什么?

    不大熟练使用while语句,一遇到循环问题使用for语句,因为用while语句的时候总出错。而且不管使用哪个语句,表达式中是该i<n还是i<=n经常搞混,所以要花挺多的时间调试找问题。

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

    (1)哪些地方错了,为什么?

    当所要数据为double型时,公式写成整形除以整形,没有乘以1.0;二十四小时制的那道题,没有理解题目意思,写出了错误的表达式;计算所得税的那道题,有些值要乘以百分之十,写成了乘以0.1,正确应写为0.10。

    (2)后续要怎么找程序错误?

    通过调试找程序错误,或者在程序中使用printf语句输出一些值,查看它能否输出,输出的值又为多少。

    (3)对自己成绩满意么?不满意的话要怎么改进?

    不满意,多做一些题目,练习题感,加快速度。

转载于:https://www.cnblogs.com/yiyeluo0701/p/7768983.html

你可能感兴趣的文章
POJ3438 ZOJ2886 UVALive3822 Look and Say【数列】
查看>>
IE6的height小BUG
查看>>
说说IUnitOfWork~DbContext对象的创建应该向BLL层公开
查看>>
强制卸载kernel
查看>>
js 杂项(一)函数篇
查看>>
pythonGUI-wxpython
查看>>
最小生成树模板 加 例题分析 (最小生成树类型汇总)
查看>>
web渗透测试中WAF绕过讲解(二)基于HTTP协议绕过
查看>>
【CSON原创】CSS的障眼法:利用border实现图片的翻转
查看>>
oracle:plsql学习总结(oracle database 10g sql 开发指南)
查看>>
〔转〕Word域的应用和详解2_等式和公式域
查看>>
FZU 1502 Letter Deletion
查看>>
javascript写的ajax请求
查看>>
寄存器是什么 有什么作用
查看>>
转载 《Python爬虫学习系列教程》学习笔记
查看>>
Flex组件的项目渲染器(ItemRenderer)使用总结
查看>>
python - 列表
查看>>
NGUI的输入框制作(attach- input filed script的使用)
查看>>
[异常笔记] zookeeper集群启动异常: Cannot open channel to 2 at election address ……
查看>>
mysql 03
查看>>