一、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语言第三次作业---单层循环结构的更多相关文章

  1. C语言第三周作业---单层循环

    一.PTA实验作业 题目1 1.实验代码 int N = 0,i; char sex; float a[9], height; scanf("%d\n", &N); for ...

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

    一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数,i记录循环变量 double height; //height放身高 char sex; //sex放性别F为女,M为男 s ...

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

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

  4. C语言第三次作业总结

    本次作业的亮点 总体情况 大部分同学基本掌握了单层循环结构的写法,懂得了代码调试的过程 PTA通过率及作业质量都不错,希望再接再厉 推荐博客 黄毓颖 推荐理由:代码思路清晰,格式良好:调试过程相当形象 ...

  5. C语言 第三次作业--函数

    1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 学习C语言也半个学期了,前天也才刚刚进行了半期考试,emmm,成绩很差,可以反应出来我这半学期学习的效果并不 ...

  6. C语言博客作业02——循环结构

    1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周学习了循环结构,在之前学习分支结构的时候就涉及到了循环结构中的for循环,这周的又新学了while和do- ...

  7. C语言——第三次作业(2)

    作业要求一 PTA作业的提交列表 第一次作业 第二次作业 一道编程题: 有一个axb的数组,该数组里面顺序存放了从1到a*b的数字.其中a是你大学号的前三位数字,b是你大学号的后四位数字,比如你的学号 ...

  8. Java基础(三)选择和循环结构

    一.选择结构,条件判断 1.if 语句 一个 if 语句包含一个布尔表达式和一条或多条语句.如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码. impor ...

  9. Shell基础(三):使用for循环结构、使用while循环结构、基于case分支编写脚本、使用Shell函数、中断及退出

    一.使用for循环结构 目标: 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 1> 对192.168.4.0/24网段执行 ...

随机推荐

  1. 你还在为如何区分ASCII编码、GB2312编码、Unicod、UTF-8编码而烦恼吗,一篇文章让你柳暗花明

    字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...

  2. WPF基础篇之连接数据库

    WPF连接DB2数据库 public void ConnectionBD2Func() { //连接数据库字符串,DB2 9.5以下版本使用Data Source=Test,否则查询找不到数据库.DB ...

  3. JavaScript设计模式(4)-桥接模式

    桥接模式 在设计一个 Js API 时,可用来弱化它与使用它的类和对象之间的耦合 1. 事件监听器的回调函数 function getBeerById(id, callback) { asyncReq ...

  4. 从“跳一跳”来看微信小程序的未来

    从“跳一跳”来看微信小程序的未来   相信大家这两天都被微信新推出的小程序跳一跳刷爆了朋友圈,为了方便用户在使用过程中切换小程序,微信在这次6.6.1版本中加入了下拉可快速切换小程序的功能,而“跳一跳 ...

  5. C#多线程编程(4)--异常处理+前三篇的总结

    本来是打算讲并行For和PLINQ的,但是我感觉前三篇我没有讲得很清晰.之前一直在看<CLR via C#>(后文简称CLR)的多线程部分,其中有些部分不是很明白,今天翻开<果壳中的 ...

  6. 【BZOJ1911】【APIO2010】特别行动队(斜率优化,动态规划)

    [BZOJ1911][APIO2010]特别行动队 题面 Description 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号, 要将他们拆分成若干特别行动队调入战场.出于默契的考 ...

  7. Luogu4175:[CTSC2008]网络管理Network

    题面 Luogu4175:[CTSC2008]网络管理Network Sol 路径第\(k\)大 无解直接判断就好了 然后整体二分,加上树链剖分+树状数组统计 # include <bits/s ...

  8. datatable 分页实例

    1.使用datatable前台分页,需要后台返回全部数据,返回lisit 2.如果是后台分页 则后台需要获取分页参数,页面中要加 "searchable":true,  " ...

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

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

  10. angular何时触发脏检查机制

    ng只有在指定事件触发后,才进入$digest cycle: DOM事件,譬如用户输入文本,点击按钮等.(ng-click) XHR响应事件 ($http) 浏览器Location变更事件 ($loc ...