C语言第三次作业---单层循环结构
一、PTA实验作业
题目一、最佳情侣身高差
1.实验代码
int N;//存放输入的人数
char sex;
double hight1,hight2;//分别存放输入的身高和输出的身高
scanf("%d",&N);
for(N=N;N>0;N--)
{
scanf(" %c%lf",&sex,&hight1);
if(sex=='M'){
hight2=hight1/1.09;
printf("%.2f\n",hight2);
}
if(sex=='F'){
hight2=hight1*1.09;
printf("%.2f\n",hight2);
}
}
2.设计思路
- 第一步:定义一个整形变量N,定义一个字符型变量sex,定义两个双精度浮点变量height1,height2
- 第二步:输入查询的人数N
- 第三步:输入性别sex以及身高height1
- 第四步:判断性别,如果输入的性别为男,计算hight2=hight1/1.09
- 第五步:若为输入的性别为女,则计算hight2=hight1*1.09
- 第六步:输出height2
- 第七步:N--
- 第八步:重复第3步,直到N<=0
3.本题调试过程中碰到的问题及解决办法
- 碰到的问题:scanf(" %c%lf",&sex,&hight1)该语句中%c前没有空格,第一轮循环结束后,回车键被当做字符,导致第二轮循环直接结束。

- 解决办法:尝试输入N为3,发现第二轮输出为空,经过调试发现第一轮和第三循环中判断条件没有执行,想到上机考试最后一题没加%c前空格导致不能进入判断,从而进行修改。

调试过程截图:


这个时候判断sex,输入的为M,但并未判断

判断的F也没有进入,进入了下一次循环

第二次循环并没有输入,但是输入的语句被跳过了,进入了M的判断


第三次循环输入数据后再次被跳过,程序结束
本题PTA提交列表

题目二、特殊a串数列和
1.本题实验代码
int a,n;//a用于存放输入的数,n用于存放a的最高个数
int s=0;//s用于存放数的和
int b=1,c;//c用于存放每个an的值,b表示c的最高位数为10的多少次方
scanf("%d%d",&a,&n);
c=a;
for(b=1;b<=n;b++){
s=s+c;
c=c+a*pow(10,b);//计算下一个an
}
printf("s = %d\n",s);
2.设计思路
- 第一步:定义5个整形变a,,n,s,b,c
- 第二步:输入a和n
- 第三步:赋值c=a
- 第四步:s=s+c
- 第五步:计算下一个an,c=c+a*pow(10,b)
- 第六步:b++
- 第七步:重复第四步,知道b<=n
- 第八步:输出s的值
3.本题调试过程中遇到的问题及解决方法
- 遇到的问题:本题的问题主要在计算每一个an的值,计算过程中没有另外定义一个变量来存放上一个an,导致每次循环计算是an的值出现问题

调试过程截图:






- 解决方法:另外定义了一个变量c用于表示每个特殊值
4.本题PTA提交列表

题目三、找出最小值
1.本题代码
int i,mark,min,n;//mark用于存放数字,min存放最小值
scanf("%d",&n);
scanf("%d",&mark);
min=mark;
for(i=1;i<n;i++){
scanf("%d",&mark);
if(min>mark)
min=mark;
}
printf("min = %d\n",min);
return 0;
2.设计思路
- 第一步:定义四个整形变量i,mark,min,n
- 第二步:输出数字个数n
- 第三步:输入一个数字mark
- 第四步:赋值min=mark
- 第五步:输入一个数字mark
- 第六步:判断min与mark的大小,若min>mark,赋值min= mark
- 第七步:i++
- 第八步:重复第五步,直到i>=n
- 第九步:输出最小值min
3.本题调试过程中遇到的问题及解决方法
无
调试过程截图:






4.本题PTA提交列表

题目四、猜数字游戏
1.实验代码
int number;//number用于存放被猜数
int mynumber,N;//mynumber用于存放猜的数,N用于存放猜测的最大次数
int count=0;//count用于存放猜测的次数
scanf("%d %d",&number,&N);
while(count<=N){
count++;
scanf("%d",&mynumber);
if(mynumber<0){ //判断输入数字是否为负数,若为负数直接结束
printf("Game Over\n");
break;
}else{ //输入的数字为正数,进行判断是否猜中
if(mynumber>number){
printf("Too big\n");
continue;
}else if (mynumber<number){
printf("Too small\n");
continue;
}else { //猜中数字,判断猜中的次数
if(count==1){
printf("Bingo!\n");
break;
}
if(count<=3){
printf("Lucky You!\n");
break;}
if(count>3&&count<=N){
printf("Good Guess!\n");
break;
}
}
if(count>N){
printf("Game Over\n");
}
}
}
2.设计思路
- 第一步:定义四个整形变量number,mynumber,count=0,N
- 第二步:输入被猜数number和最大猜测次数N
- 第三步:count++
- 第四步:输入用户猜的数mynumber
- 第五步:判断number是否为负数,若为负数,输出Game Over
- 第六步:若不为负数,判断用户输入的数和被猜数的大小,若用户猜的数大于被猜数,则输出Too Big,重复第四步
- 第七步:若用户猜的数小于被猜数,则输出Too Small,重复第四步
- 第八步:若用户猜的数等于被猜数,判断用户所用的次数count,若count=1,输出Bingo!
- 第九步:若用户所用的次数count大于1,小等于3,输出Lucky You!
- 第九步:若用户所用的次数count大于3,小等于N,输出Good Guess!
- 第十步:若用户所用的次数count大于N,输出Game Over
3.本题调试过程中遇到的问题及解决方法
遇到的问题:最后一个判断count是否大于N,最开始写的是N+1,导致超过N次猜对出现错误


解决方法:通过调试发现需要多输入一次,但最后一次输出为空,所以改成count>N
发现错误的调试过程截图:







4.本题PTA提交列表

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

三、本周学习总结
1.你学会了什么?
- 通过本周的学习,我学会嵌套循环的应用,还学会了getchar的用法。
- 通过对嵌套循环结构的学习,我明白了先写算法的重要性,以前总是看了题目打开Dvec就开始打代码,到循环结构发现直接打代码很吃力,而且会有很多问题,有很多地方会考虑的不周到出现纰漏,导致错误,先写算法的话,能捋清楚思路能知道应该用什么结构去处理问题,会有一个大致的方向,这样打代码的过程就不会那么吃力。
- 同时也开始重视调试的过程,调试的过程相当于在复习一遍算法,这个过程能找出很多算法上的问题。
- 还有变量名的问题,这周的代码,我开始更多的用变量的英文名定义,一些没有用英文名的变量名后面也会加上注释
2.本周的内容,你还不会什么?
- 对本周的内容困惑的地方主要是对于三种循环语句应用什么时候最好,虽然明白它们的区别但是每次打代码的时候只是凭感觉去选择应该用哪一个,特别是在do while 和while上,明知道是有区别的,有时感觉用起来没有区别,只要适当的改变变量的值或者判断的条件,好像先判断再做和先做再判断都行。
C语言第三次作业---单层循环结构的更多相关文章
- C语言第三周作业---单层循环
一.PTA实验作业 题目1 1.实验代码 int N = 0,i; char sex; float a[9], height; scanf("%d\n", &N); for ...
- C语言第三次博客作业---单层循环结构
一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数,i记录循环变量 double height; //height放身高 char sex; //sex放性别F为女,M为男 s ...
- c语言:第二次作业,循环结构
1.本章学习总结(2分) 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 循环相比分支和顺序结构难了许多,相对的来说我的c语言的基础比之前有提高,但是还是很多题想了很久也 ...
- C语言第三次作业总结
本次作业的亮点 总体情况 大部分同学基本掌握了单层循环结构的写法,懂得了代码调试的过程 PTA通过率及作业质量都不错,希望再接再厉 推荐博客 黄毓颖 推荐理由:代码思路清晰,格式良好:调试过程相当形象 ...
- C语言 第三次作业--函数
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 学习C语言也半个学期了,前天也才刚刚进行了半期考试,emmm,成绩很差,可以反应出来我这半学期学习的效果并不 ...
- C语言博客作业02——循环结构
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周学习了循环结构,在之前学习分支结构的时候就涉及到了循环结构中的for循环,这周的又新学了while和do- ...
- C语言——第三次作业(2)
作业要求一 PTA作业的提交列表 第一次作业 第二次作业 一道编程题: 有一个axb的数组,该数组里面顺序存放了从1到a*b的数字.其中a是你大学号的前三位数字,b是你大学号的后四位数字,比如你的学号 ...
- Java基础(三)选择和循环结构
一.选择结构,条件判断 1.if 语句 一个 if 语句包含一个布尔表达式和一条或多条语句.如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码. impor ...
- Shell基础(三):使用for循环结构、使用while循环结构、基于case分支编写脚本、使用Shell函数、中断及退出
一.使用for循环结构 目标: 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 1> 对192.168.4.0/24网段执行 ...
随机推荐
- DirectSound---音效使用
DirectSound以DMO(DirectX Nedua Objects)的方式提供了对原始音频数据的处理,开发者能够通过VC6.0里的Audio Effect DMO Wizard来开发自定义的D ...
- 谈谈在.NET Core中使用Redis和Memcached的序列化问题
前言 在使用分布式缓存的时候,都不可避免的要做这样一步操作,将数据序列化后再存储到缓存中去. 序列化这一操作,或许是显式的,或许是隐式的,这个取决于使用的package是否有帮我们做这样一件事. 本文 ...
- 可重复执行的SQL Script
问题 在工作中偶尔会遇到这样的问题:SQL script重复执行时会报错. 理想的状态下,SQL script跑一遍就够了,是不会重复执行的,但是实际情况往往很复杂. 比如Dev同学在开发时在A环境把 ...
- [BZOJ2002] [Hnoi2010] Bounce 弹飞绵羊 (LCT)
Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...
- 超文本传输协议 - HTTP / 1.1(Hypertext Transfer Protocol -- HTTP/1.1)之方法定义(Method Definitions)
9方法定义 下面定义了HTTP / 1.1的一组常用方法.尽管可以扩展这个集合,但是另外的方法不能假定为单独扩展的客户端和服务器共享相同的语义. 主机请求头域(14.23节)必须伴随所有的HTTP / ...
- 【Spring源码分析】非懒加载的单例Bean初始化过程(上篇)
代码入口 上文[Spring源码分析]Bean加载流程概览,比较详细地分析了Spring上下文加载的代码入口,并且在AbstractApplicationContext的refresh方法中,点出了f ...
- 【Learning】带花树——一般图最大匹配
一般图最大匹配--带花树 问题 给定一个图,求该图的最大匹配.即找到最多的边,使得每个点至多属于一条边. 这个问题的退化版本就是二分图最大匹配. 由于二分图中不存在奇环,偶环对最大匹配并无 ...
- hive数据库的哪些函数操作是否走MR
平时我们用的HIVE 我们都知道 select * from table_name 不走MR 直接走HTTP hive 0.10.0为了执行效率考虑,简单的查询,就是只是select,不带count, ...
- python多线程、多进程以及GIL
多线程 使用threading模块创建线程 传入一个函数 这种方式是最基本的,即调用threading中的Thread类的构造函数,然后指定参数target=func,再使用返回的Thread的实例调 ...
- (转)regex类(个人理解)
regex类(个人理解) C#regex是正则表达式类用于string的处理,查找匹配的字符串.1,先看一个例子Regex regex=new Regex(@”OK“)://我们要在目标字符串中找 ...