一、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. Windows Developer Day Review

    北京时间 3 月 8 日凌晨 1 点钟,今年的第一次 Windows Developer Day 正式召开.    因为时间太晚看不了直播,我也是第二天早上在公司看的重播.整个会议过程有很多值得去研究 ...

  2. 指针数组与带参main函数

    (一)指针数组 指针数组就是每一个元素存放一个地址,相当于一个指针变量.如:int *p[4]指针数组比较适合用来指向若干字符串,使得处理字符串更加灵活.例如,现在要将若干字符串按字母顺序由小到大输出 ...

  3. NgRx/Store 4 + Angular 5使用教程

    这篇文章将会示范如何使用NgRx/Store 4和Angular5.@ngrx/store是基于RxJS的状态管理库,其灵感来源于Redux.在NgRx中,状态是由一个包含action和reducer ...

  4. 【BZOJ3262】陌上花开(CDQ分治)

    [BZOJ3262]陌上花开(CDQ分治) 题解 原来放过这道题目,题面在这里 树套树的做法也请点上面 这回用CDQ分治做的 其实也很简单, 对于第一维排序之后 显然只有前面的对后面的才会产生贡献 那 ...

  5. 【HDU1711】Number Sequence

    题面 大致题意: 给定两个数列A,B,长度分别为N和M 求出 满足 Ak=B1 ,Ak+1=B2......Ak+M-1=Bm 的最小k值 如果有多个k值输出最小的一个 题解 KMP裸题 直接计算B数 ...

  6. java基础:内存分配(上)

    java执行中的内存分区: 1.代码域:存放代码 2.数据域:存放静态的数据 3.栈:存放局部变量 4.堆:存放成员变量 (ps:局部变量是类中方法体中申明的变量,只在这个方法中有效:成员变量是类中方 ...

  7. Zabbix 监控 Docker容器

    我们可以通过Python提供的模块docker来取各个docker容器的监控参数.参考文档:http://docker-py.readthedocs.io/en/stable/containers.h ...

  8. 8Manage:物流CRM,深度挖掘快递企业下一站蓝海!

    [导读]网购的普及加快了快递物流服务在中国的发展,而物流行业也开始展露出自身巨大的发展潜力和进步空间.其中,作为物流行业根本核心的物流客户关系管理开始引起了管理者的注意,如何升级用户物流服务体验,把握 ...

  9. 元素化设计原理及规则v1.0

    一.元素设计架构 元素设计架构展示在基于元素化设计的思想下,系统各元素之间如何相互协作,并完成整个系统搭建. 架构中以Entity(数据)为中心,由Entity产生数据库表结构,并且Entity作为业 ...

  10. Flume - Kafka日志平台整合

    1. Flume介绍 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供 ...