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网段执行 ...
随机推荐
- 关于CS1061报错(XX不包含XXX的定义,并且找不到类型为XX的第一个参.....)的一种可能的解决的办法
在我编程中,我遇到了一个这样的报错, 可是我引用的product类中又确实定义了这么一个方法, protected void BindPageData(int categoryID) { Produc ...
- Defeat the Enemy UVALive - 7146
Long long ago there is a strong tribe living on the earth. They always have wars and eonquer other ...
- Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包
- 关于webpack,打包时遇到的错误
最近在研究webpack这玩意,然后遇到一个问题,执行npm run build的时候,出现下面这个问题,各种搜索后,各种尝试,都没解决 运行时报错ERROR in ./src/app.vue Mod ...
- DELL XPS 13 9350 装Win7系统(坑爹)
0.记一次悲惨的装机记录 1.为什么这么难装呢? 因为这个NB本身是为Win10设计的,所以官网没有Win7驱动,系统设置各种不兼容 2.希望你能看到本文最后 因为你看到最后,你就不会给这个逗比装Wi ...
- Luogu3092:[USACO13NOV]No Change
题面 传送门 Sol 状压一下\(k\),\(f[S]\)表示用过的硬币集合为\(S\)能买到的物品个数 # include <bits/stdc++.h> # define RG reg ...
- 浅析Unity中的Enlighten与混合光照
0x00 前言 在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten[1]来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的Lightmapp ...
- linux下tomcat 8的安装以及tomcat启动慢问题
今天在 linux 下安装了 tomcat,中间也是一路波折,最终安装好了.感觉应该有不少伙伴跟我一样都会踩到这些坑,打算记录下来.使用的是通用(ubantu,debian, centos 均可)的安 ...
- Python模块之hashlib模块、logging模块
一.hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5.hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个 ...
- 通过Navicat连接MySQL数据库
步骤一.从Navicat官网下载Navicat11版本安装包安装 下载连接:http://www.formysql.com/xiazai_mysql.html 步骤二.下载补丁破解程序PatchNav ...