博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言第三次博客作业---单层循环结构
阅读量:4339 次
发布时间:2019-06-07

本文共 3908 字,大约阅读时间需要 13 分钟。

一、PTA实验作业


题目1

1.实验代码

#include
int main(void){ int i,n; double man,women; char sex; scanf("%d\n",&n); for(i=1;i<=n;i++){ scanf("%c",&sex); if(sex=='M'){ scanf("%lf\n",&man); women=man/1.09; printf("%.2f\n",women); } if(sex=='F'){ scanf("%lf\n",&women); man=women*1.09; printf("%.2f\n",man); } } return 0;}

2 .设计思路

  • 第一步:定义两个整型变量i,n;定义两个双精度浮点型变量woman,man;定义字符型变量sex。
  • 第二步:进入循环结构,赋初值i=1,循环条件i<=N。
  • 第三步:输入性别。进行条件判断。
  • 第四步:如果输入性别为男,则woman=man/1.09;如果输入性别为女,则man=woman*1.09;并分别输出。
  • 第五步:如果满足i<=N重复第三步。直到不满足循环条件,程序结束。

3.本题调试过程碰到问题及解决办法

问题1:定义woman与man为整型变量,造成结果错误。

改成双精度浮点型后正确。
问题2:if后面的语句没有用{}括起来,造成结果错误。
把if后所有语句用{}整合在一起。


4.本题PTA提交列表

1231958-20171102193447076-910607494.png



题目2

1.实验代码

#include
#include
int main(void){ int a,n,i,item,sum; scanf("%d %d",&a,&n); sum=0; item=0; for(i=1;i<=n;i++){ item=item*10+a; sum=sum+item; } printf("s = %d",sum); return 0;}

2 .设计思路

  • 第一步:定义4个整型变量a,n,i,item,sum;
  • 第二步:输入a,n;并对sum,item初赋值。
  • 第三步:进入循环i赋值为1,循环条件为i小于等于n,且i每次循环递增一。
  • 第四步:循环内容为item=item*10+a,并赋值sun=sum+item;
  • 第五步:如果满足i<=n重复第四步。直到不满足循环条件,程序结束。

3.本题调试过程碰到问题及解决办法

问题:题目理解错误,把22弄成aa。

后面找出算式规律,利用item10+a=22,把代码打正确。

4.本题PTA提交列表

1231958-20171102193622185-301684988.png


题目3

1.实验代码

#include
int main(void){ int n,i,number,a,b; scanf("%d",&n); scanf("%d",&number); for(i=1;i<=n;i++){ a=number; scanf("%d",&number); if(a<=number){ b=a; number=a;} else b=n; continue; } printf("min = %d",b); return 0;}

2 .设计思路

  • 第一步:定义五个整型变量n,i,number,a,b;
  • 第二步:输入数据个数n和第一个数据number。
  • 第三步:进入循环i赋初值1,循环条件i小于等于n,i每次循环递增一。将第一个数据number赋值给a。
  • 第四步:继续输入number,如果a小于此时的number,将a赋值于b,number。
  • 第五步:若num等于n,即为最后一次循环,则再次利用if语句判断min与最后一个数的大小。
  • 第六步:否则继续读入下一个数据。并利用if语句判断min,number的大小关系
  • 第七步:若min大于等于number,赋值min等于number.
  • 第八步:否则,min值不变继续读入下一个数据。
  • 第九步:重复第四五六七步骤。直到num大于n时结束循环。
  • 第十步:输出最小值。

    3.本题调试过程碰到问题及解决办法

    问题1:1231958-20171102223343248-441015966.png

    无法编译
    解决方法:1231958-20171102223747498-1261092513.png
    1231958-20171102223834873-771534338.png

不断调试,找到了错误。

4.本题PTA提交列表

1231958-20171102193720404-539452477.png


题目4

1.实验代码

#include
int main(void){ int count=0,a,b,number; scanf("%d %d",&a,&b); do{ count++; scanf("%d\n",&number); if(number<0){ break;} else if(a
number){ printf("Too small\n");} else break;} while(number>0); if(number>=0){ switch(count){ case 1 : printf("Bingo!"); break; case 2 : case 3 : printf("Lucky You!"); break; } } if(count>3&&count<=b){ printf("Good Guess");} else if(count>b){ printf("Game Over");} else if(number<0){ printf("Game Over"); } return 0;}

2 .设计思路

  • 第一步:定义4个整型变量a,b,count,number。
  • 第二步:输入随机数与规定次数。
  • 第三步:利用do while循环,每次输入次数count累加一,if语句判断每次a与number的大小关系。
  • 第四步:重复第三步,直至用户猜数小于0.结束循环。
  • 第五步:利用if语句以及switch语句判断当用户猜数大于等于0时,输入次数分别为1,2,3时分别输出的语句。
  • 第六步:利用if语句判断当输入次数大于3时的特殊情况。

3.本题调试过程碰到问题及解决办法

问题:1231958-20171102222959201-732321840.png

我每次输入一个值,就会输出一个答案
解决方法:它用的是do-while,因为次数未知,是系统自己规定。判断结果,直接输出。

问题2:

4.本题PTA提交列表

1231958-20171102215735920-2098486097.png

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

1231958-20171102194248060-1564057899.png


三、本周学习总结

1.你学会了什么?

  • 一、循环语句
      1.while语句
      ①功能:实现当型循环结构。
      ②形式:while(表达式){ 
    循环体
    ③特点:先判断后执行。
    ④举例:(累加和问题)编程计算整数1~100的和。
    2.do-while语句
    ①功能:实现直到型循环结构。
      ②形式:do{ 循环体}
    while(表达式); //注意最后的分号
    ③特点:先执行后判断
    3.for语句
      ①功能:实现当型循环结构。
      ②形式:for(表达式1;表达式2;表达式3){ 循环体}
    ③特点:先判断后执行;使用频率最高
  • 二、break和continue语句
    1.break语句强制结束循环,可与if语句和switch语句配套使用。
    2.continue语句是跳过后面的语句继续循环,它只能用于循环语句。

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

  • 1.循环嵌套并不熟练,不会运用。
  • 2.不会运用调试找到问题,碰见代码错误,应对方法几乎没有。
  • 3.不会灵活运用continue和break语句。

3.你碰到什么困难,打算如何解决?

感觉很多知识都是学会了,但是不会运用。学了循环忘了分支结构。很多题目做错了不会运用调试找到问题,所以题目错了就是错了。不过相对于上周起码会调试了,只是不知道运用调试找到代码错误,下周会在这方面下功夫。

四、上机考试总结

上机考试之所以没有时间写完,除了平时练习量不够,最重要的是态度问题。没有把该记下来的东西记住。就是因为第一题记不住公式,脑子一直在回忆绝对值与log的数学函数怎么用C语言表达,直到老师提醒才写完第一题。而其他题目能够独立完成。但是最后一题还没写完代码,时间就不够了。回去写了一下最后一题,发现没有想象的简单,每次都是编译成功,但是结果都是错的,自己调试能力又很薄弱,一直找不到问题所在。后面记着老师在上机考试时提醒过空格也是字符,才知道越来空格把自己定义的字符替代了,所以结果一直都是错的。  通过这次上机考试,认识到自己的不足,以及与其他同学的差距。自己也在反思,都是一起学习C语言,起跑线也一样,之所以被拉开差距是因为自己对于C语言的重视程度不够。如果一开始基础都没学好,那学习java也会十分吃力!

转载于:https://www.cnblogs.com/yfrnb/p/7773934.html

你可能感兴趣的文章
[Bzoj1009][HNOI2008]GT考试(动态规划)
查看>>
Blob(二进制)、byte[]、long、date之间的类型转换
查看>>
OO第一次总结博客
查看>>
day7
查看>>
iphone移动端踩坑
查看>>
vs无法加载项目
查看>>
Beanutils基本用法
查看>>
玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)
查看>>
《BI那点儿事》数据流转换——百分比抽样、行抽样
查看>>
哈希(1) hash的基本知识回顾
查看>>
Leetcode 6——ZigZag Conversion
查看>>
dockerfile_nginx+PHP+mongo数据库_完美搭建
查看>>
Http协议的学习
查看>>
【转】轻松记住大端小端的含义(附对大端和小端的解释)
查看>>
设计模式那点事读书笔记(3)----建造者模式
查看>>
ActiveMQ学习笔记(1)----初识ActiveMQ
查看>>
Java与算法之(2) - 快速排序
查看>>
Windows之IOCP
查看>>
机器学习降维之主成分分析
查看>>
WebSocket & websockets
查看>>