一、PTA实验作业

题目1

1.代码

  int N,i;
double height; //height代表身高
char sex; //代表男女性别
scanf("%d",&N);
for(i=1;i<N;i++){
scanf("%c%f",&sex,&height);
getchar();
if(sex=='M'){
printf("%.2lf",hight/1.09);
}
else{
printf("%.2lf",hight*1.09);
}
getchar();

2.实验思路

  • (1)定义两个整形变量N、i,N代表输入的个数,定义一个浮点型变量height代表身高。定义一个字符类型sex代表性别。
  • (2)在第一行输入N,height。
  • (3)当sex'M'时,输出height/1.09的结果,并保留两位小数 。当sex'F'时,输出height*1.09的结果,并保留两位小数 。

3.调试问题

该题需要输入多个数据,但当我调试时总时不能输入第二行输据,按回车键时直接输出结果为0,改了很多处都无法解决这个问题,后来经过询问同学和百度后才知道系统把回车键当作一个字符吸收了,从而无法识别后面的字符。后来我在输入%c的前面加了一个空格,才解决了这个问题。

4.PTA提交列表

题目2.特殊a串数列求和

1.代码

 int a,n,i;
double sum,item; //sum用来存放各项之和 //item用来存放每一项
scanf("%d%d",&a,&n);
sum=0;
item=0;
for(i=1;i<=n;i++){
item=a*pow(10,i-1)+item;
sum=sum+item;
}
printf("s = %.0lf",sum);

2.实验思路

  • (1)定义三个整形变量a,n.i,两个浮点型变量sum,item,sum用来存放各项之和,item用来存放每一项。
  • (3)输入两个整数a,n。
  • (4)令i=1,i<=n,每执行一次循环i++,循环体为: item=a*pow(10,i-1)+item;sum=sum+item。
  • (5)循环结束时输出sum,同时保留两个有效数字。

3.调试问题

这题比较简单,就是一开始看错题目了,把题目中的aa看成了a*a,导致写出了错误的代码。还写代码时引用了数学函数,但没有在代码前声明。最后通过调试发现了错误。公式没写正确,公式中应为i-1,而我写成了i,后来通过断点调试改正了错误。



4.PTA提交列表

题目3.找出最小值

本题要求编写程序,找出给定一系列整数中的最小值。

1.代码

int n,result,i,min;        //result代表用户输入的数据      //min用来存放最小值
scanf("%d",&n);
scanf("%d",&result);
min=result;
for(i=1;i<n;i++){
scanf("%d",&result);
if(min>result){
min=result;
}
}
printf("min = %d",min);

2.实验思路

  • (1)定义四个整形变量 n,result,i,min,result代表用户输入的数据,min用来存放最小值。
  • (2)在一行中输入一个正整数n,之后是n个整数。
  • (3)令i=1,i<=n,每执行一次循环i++。循环体为; scanf("%d",&result); if(min>result),令 min=result。
  • (4)循环结束时,输出min的值。

3.调试问题及解决方法

第一次写的时候没设中间变量min,直接把最小值赋给了n,最后输出最小值n时答案总是不正确。通过设段点调试时才发现n发生变化时循环的条件也发生了改变,所以不能直接改变n的值,要通过一个中间变量来储存要最小值。

4.PTA提交列表

题目4. 猜数字游戏

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

1.代码

int mynumber,younumber,n,i;       //mynumber、younumber分别代表用户输入的数字与系统产生的被猜数
scanf("%d%d",&younumber,&n);
scanf("%d",&mynumber);
if(mynumber>=0&&i<=n){
for(i=1;i<=n;i++){
if(younumber<mynumber){
printf("Too big\n");
}
else if(younumber>mynumber){
printf("Too small\n");
}
else{
if(i==1){
printf("Bingo!");
break;
}
else if(i<=3){
printf("Lucky You!");
break;
}
else if(i<=n){
printf("Good Guess");
break;
}
else{
printf("Game Over");
break;
}
}
scanf("%d",&mynumber);
}
}
else{
printf("Game Over");

2.实验思路

  • (1)定义三个整形变量 mynumber,younumber,n,i,
  • (2)第一行输出mynumber与n,之后每行输入一个mynumber。
  • (3)令i=1,i<=n,每执行一次循环i++。在循环中当younumber<mynumber时,输出"Too big\n";当younumber>mynumber时,输出"Too small\n";否则,不满足上述时:i=1时,输出"Bingo!";i>1&&i<=3时,输出"Lucky You!";i<=n时,输出"Good Guess"。循环输入mynumber。
  • (4)当不满足上述循环时,直接输出"Game Over"。

3.调试问题及解决方法

这题是写得最久的一题,因为该循环太长了,导致犯了很多错误,例如把 else{ printf("Game Over");这句放到了循环内,导致调试时系统多输出了一句Game Over,一些语句中的break忘了加。

4.PTA提交列表

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

三、本周学习总结

1.你学会了什么?

  • 在这次作业中我试着不翻课本,独自地完成每一道编程,发现了自己的好多毛病。虽然效率真的慢了好多,但通过拿自己的代码跟课本上的作对比,及时发现了自己的不足。之前太依赖课本,我觉得这不利于自己的思维,因为每道题目的做法有很多种,有些课本上的题不一定是最简便的。
  • 弄懂了for循环语句和while循环语句的不同点和相同点,如果给定循环次数时,首选for语句。当要先进入循环条件,再判断循环是否结束时,用do-while,但在大多数情况下,两者可以通用。

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

  • 这次PTA题目有些我觉得有点难,例如龟兔赛跑那题,写了好久都没思路。我觉得可能是练得不够多吧,遇到陌生的题就感觉无从下手。
  • 不太会用devc设段点这个方法来找自己代码的错误。

3.分支结构上机总结。

  • 哪些地方错了,为什么?

    调用那几种数学函数的单词记混了,导致用devc调试好久都得不到正确答案。还有那天那个swich语句格式忘了,调了几次改用if语句才写得出来。

    我觉得是因为我之前打代码都太依赖课本了,导致一些语句的格式都没记住。
  • 后续要怎么找程序错误?

    以后学着用devc设段点来观察变量。
  • 对自己的成绩满意吗?不满意的话要怎么改进?

    不满意,以后要多练,争取熟能生巧。

c语言的第三次---单程循环结构的更多相关文章

  1. C语言程序设计第六次作业——循环结构(2)

    C语言程序设计第六次作业--循环结构(2) 之前的博客园图片没处理好,对大家说一声抱歉.希望大家能够多多指出我的错误,我来认真修改 ^ - ^ !. (1)改错题 序列求和:输入一个正实数eps,计算 ...

  2. C语言程序设计第五次作业——循环结构

    (一)改错题 1.题目:输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如下: c = 5 ...

  3. c语言:第二次作业,循环结构

    1.本章学习总结(2分) 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 循环相比分支和顺序结构难了许多,相对的来说我的c语言的基础比之前有提高,但是还是很多题想了很久也 ...

  4. C语言程序设计第五次作业——循环结构(1)

    一.改错题 1.题目 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如下:c = 5×( ...

  5. C语言程序设计第五次作业--循环结构(1)

    (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如下: c = 5×(f-3 ...

  6. C语言程序设计第六次作业--循环结构(2)

    (一)改错题 序列求和:输入一个正实数eps,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... ,精确到最后一项的绝对值小于eps(保留6位小数). 输入输出样例: Input e ...

  7. C语言程序设计第六次作业--循环结构2

    (一)改错题 序列求和:输入一个正实数eps,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... ,精确到最后一项的绝对值小于eps(保留6位小数). 输入输出样例: Input e ...

  8. (三)js循环结构

    1.循环结构 a)    当循环 语法:while(condition){         code...     }     do(){         code...     } while(); ...

  9. 网易云课堂_程序设计入门-C语言_第三周:循环_2数字特征值

    2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...

随机推荐

  1. pat1031-1040

    1031 #include<iostream> #include<cstdio> #include<cstring> #include<vector> ...

  2. linux和windows通用的路径

    String path=request.getSession().getServletContext().getRealPath("/")+"js" + Sys ...

  3. 浅谈js中null和undefined的区别

    在JS中,null和undefined是经常让人摸不着头脑的东西,尤其是在数据初始化以及处理的过程中,经常稍微不注意,就会让页面在渲染时出现报错,下面来细说下,这两者之间的区别: null 表示一个对 ...

  4. 内置函数:filter函数

    功能: filter函数用于过滤序列,将满足条件的元素取出来构成新的序列. 用法: filter(function, iterable) 接受两个参数,第一个函数为过滤函数(返回True后者False ...

  5. 【BZOJ2434】阿狸的打字机(AC自动机,树状数组)

    [BZOJ2434]阿狸的打字机(AC自动机,树状数组) 先写个暴力: 每次打印出字符串后,就插入到\(Trie\)树中 搞完后直接搭\(AC\)自动机 看一看匹配是怎么样的: 每次沿着\(AC\)自 ...

  6. PKUWC2018游记

    PKUWC2018游记 Day -inf 从去年的12月底开始停课,到现在也有整整一个月的时间了. 前两周考的是OI赛制,后来就变成了IOI赛制. 整体上考的很炸,虐场的次数远少于被虐的次数. 关于去 ...

  7. Postman教程——创建第一个集合

    系列文章首发平台为果冻想个人博客.果冻想,是一个原创技术文章分享网站.在这里果冻会分享他的技术心得,技术得失,技术人生.我在果冻想等待你,也希望你能和我分享你的技术得与失,期待. 什么是集合 集合是P ...

  8. Java学习第一周

    第一周学习了JDK的安装和环境的配置,初步了解了Java与C的不同之处,学习了Java的变量.基本数据类型.以及面向对象的基础.并且自行完成了一些简单Java程序的编写. (1)学习了为什么使用抽象类 ...

  9. 算法精解:DAG有向无环图

    DAG是公认的下一代区块链的标志.本文从算法基础去研究分析DAG算法,以及它是如何运用到区块链中,解决了当前区块链的哪些问题. 关键字:DAG,有向无环图,算法,背包,深度优先搜索,栈,BlockCh ...

  10. wso2ESB - 在eclipse中启用调试模式

    最近在使用wso2ESB,记录一下使用过程中碰到的坑,先写一篇调试的(前面的工具安装就不介绍了,既然想用调试了说明你已经看过一部分文档了),以后可能会介绍其他功能的使用. 在wso2 ei的文档中,介 ...