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

一、PTA实验作业。

题目1

1.实验代码

 int n,i;
double height1,height2;//1为输入身高,2为输出身高。
char sex;
//1<=height1<=3;
//N<=1;
scanf("%d",&n);
while(n--){getchar();scanf("%c%lf",&sex,&height1);switch(sex){case 'M':height2=height1/1.09;break;case 'F':height2=height1*1.09;break;}printf("%.2f\n",height2);
}return 0; 

2.设计思路

主要描述题目算法。可以用文字描述:

  • 第一步:定义height1为输入身高,height2为输出身高,sex为性别,n为人数。
  • 第二步:输入人数。
  • 第三步:输入性别和输入身高,若性别男height2=height1/1.09;break;,若为女height2=height1*1.09;break;
  • 第四步:输出height2的值。
  • 第五步:重复步骤三,知道n>0.

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

  • (1)第一次输出后需要一个回车,应用getchar读掉回车,这点没注意到。
  • (2)case后面的字符需要用‘’引出来 否则编译错误。

    4.本题PTA实验结果

    贴图展示:
    1233807-20171025232719457-1373072848.png

题目2

1.实验代码

int i,a,n,s;
s=0;
scanf("%d %d",&a,&n);//输入a,n
for(i=1;i<=n;i++)s=i*a+s*10;//计算公式printf("s = %d",s);

2 设计思路

  • (1)定义整型变量i,n,a,s存放计算结果
  • (2)输入a,n
  • (3)计算s=ia+s10
  • (4)重复步骤3,直到i>n时结束循环
  • (5)输出s

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

  • 1.[](http://images2017.cnblogs.com/blog/1231997/201711/1231997-20171102182159060-643569876.png

)
看题目计算a+aa+aaa+...+aa..a的和以为是a*a的意思,所以就很疑惑为什么题目的例子会输出246的答案。

  • 2.想了很久还是没懂这个题,就求助了室友,才明白aa是22的意思。

    题目3

    1.实验代码

int i,number,min,n;
scanf("%d",&n);
scanf("%d",&number); //输入number
min=number; //赋值min为number
for(i=1;i<n;i++){
scanf("%d",&number); //再次输出number
if(min>number) //比较min和number的大小
min=number;
}
printf("min = %d",min); //输出min

2 设计思路

  • (1)定义整型变量i,n,number表示输入的数字,min代表最小值
  • (2)输入n.number,赋值min=number
  • (3)再次输入number,若number小于min,赋值min=number
  • (4)重复步骤3,直到i<n结束循环
  • (5)输出min

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

    [](http://images2017.cnblogs.com/blog/1231997/201711/1231997-20171102183202607-2020958412.png

)
通过调试发现忘了对min赋值,虽然对于这个题没有影响,但有可能这种细节不注意,对于以后的编程有一定的影响。

题目4

1.实验代码

    int i,N,number,n;scanf("%d%d",&number,&N);//输入电脑产生的数和循环次数for(i=1;i<=N;i++){scanf("%d",&n);//输入玩家猜的数字if(n>number)//n大于numberprintf("Too big\n");else if(n<number&&n>0)//n大于0且小于numberprintf("Too small\n");else if(n==number&&i==1){//n等于number且i等于1printf("Bingo!\n");break;}else if(n==number&&i>1&&i<=3){//n等于number且i等于2或3printf("Lucky You!\n");break;}else if(n==number&&i>3&&i<=N){//n等于number且i大于3小于Nprintf("Good Guess!\n");break;}else if(n<0){//n小于0printf("Game Over");break;}}if(n!=number&&i>N)//n不等于number且i大于Nprintf("Game Over\n"); 

2 设计思路

  • (1)定义整型变量i,N为可以猜的次数,number为电脑随机产生的数字,n为玩家输入的数字
  • (2)输入number,N
  • (3)输入n为玩家输入的数字
  • (4)当i<=N时,若n大于0小于number, 输出Too small. 若n 大于number, 输出Too big. 若i=1且n等于number 输出Bingo!
    若i 等于1或2且n 等于number 时,输出Lucky you! 若i 大于3小于等于N 且n 等于number 时输出Good Guess! 若n 小于0时输出Game Over
  • (5)当i>=N且n不等于number时输出Game Over

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

  • 1.[](http://images2017.cnblogs.com/blog/1231997/201711/1231997-20171102184432013-180433594.png

)
发现如果猜中后程序并没有结束,通过调试想起来没有加break语句跳出循环。

  • 2.对于输出Too small的条件没有严谨,忘记n大于0的条件,输入负数的时候会输出Too small的情况。

题目4.

1.实验代码

int main()
//60/120=1/2
{int number1,number2;
scanf("%d/%d",&number1,&number2);
int a,b,c;
a=number1,b=number2;//a=60,b=120
if(a%b==0||b%a==0){
while(c!=0){if(a<b){c=a%b;//c=60%120=60//c=60%60=0a=b;//a=120//a=60b=c;}//b=c=60//b=0else if(a>b){c=b%a;b=a;a=c;}
}
if(a<b){printf("%d/%d",number1/a,number2/a);
}
else{printf("%d/%d",number1/b,number2/b);
}}
else
{
printf("%d/%d",number1,number2);}
return 0;

2 设计思路

主要描述题目算法。可以用文字描述:

  • 第一步:定义number1存放分子,number2存放分母
  • 第二步:如果可化简,a>b,则c=a%b,a=b,b=c
  • 第三步:循环2得到结果
  • 第四步:a<b,则c=b%a;b=a;a=c;
  • 第五步:循环4得到结果

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

  • (1)运行发现无论输入什么结果都为1/1,调试后发现是算法中有错误。
  • (2)运行发现当a大于b时不会进行化简,调试发现else被镶嵌在if里,也就是if{}的有漏

    4.本题PTA实验结果。

    1233807-20171025234606973-462498634.png

二、截图本周题目集的PTA提交列表及最后排名。(2分)

1.提交列表:1233807-20171025233339582-1314367686.png

1233807-20171025233428316-136642641.png
1233807-20171025233348098-493978452.png
1233807-20171025233354129-1922463411.png
1233807-20171025233406848-70700015.png
1233807-20171025233445348-886904268.png

2.最后排名:1233807-20171025233328035-1527668418.png

三、本周学习总结(1分)

1.你学会了什么?
我学会了循环结构的简单用法
2.本周的内容,你还不会什么?
对于循环的算法还不是很了解,应学习更多算法。
3.你碰到什么困难,打算如何解决?
(1)多次出现编译错误,解决方法为在Dev C++中运行,看看提示你除了什么错误,实在不行发群上问老师助教同学。
(2)格式错误(答案错误)是最常见的问题,解决方式为将输出样例复制粘贴下来,还是错误就向老师助教寻求帮助。
(3)部分正确是最难受的,说明你成功完成了大部分,但是还有部分没完成,这时候应该静下心来好好想想是什么地方出了问题,可以重新敲一次代码,和原来进行核对

转载于:https://www.cnblogs.com/linyipeng/p/7733057.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清华大学《操作系统》(七):虚拟存储、覆盖、交换

接下来几节都是对虚拟存储的讲解。虚拟存储是非连续存储管理的扩展。通过将内存中的数据暂存到外存的方式&#xff0c;为进程提供更大的内存空间。虚拟存储出现的主要原因是因为程序规模的增长速度远远大于存储器容量的增长速度&#xff0c;导致内存空间不够用。其实针对内存空…

遵义大数据中心项目工程概况_市委书记张新文到曹州云都大数据中心等项目现场调研建设情况...

4月25日&#xff0c;市委书记张新文到曹县调研重点项目建设情况&#xff0c;研究推进措施。市委常委、秘书长任仲义参加活动。张新文首先来到曹州云都大数据中心项目建设现场&#xff0c;查看项目推进情况。曹州云都大数据中心&#xff0c;是涵盖云计算区、研发办公区、公寓生活…

linux 可执行文件的分析(gcc GUN BUILEIN)

1、GCC The History of GCC 1984年&#xff0c;Richard Stallman发起了自由软件运动&#xff0c;GNU (Gnus Not Unix)项目应运而生&#xff0c;3年后&#xff0c;最初版的GCC横空出世&#xff0c;成为第一款可移植、可优化、支持ANSI C的开源C编译器。GCC最初的全名是GNU C Com…

Cassandra 的数据存储结构——本质是SortedMapRowKey, SortedMapColumnKey, ColumnValue

Cassandra 的数据存储结构 Cassandra 的数据模型是基于列族&#xff08;Column Family&#xff09;的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和 Googles BigTable 的数据结构和功能特点&#xff0c;采用 Memtable 和 SSTable 的方式进行存储。在 Cassandra 写入数据之前&a…

清华大学《操作系统》(八):置换算法

功能&#xff1a;置换算法是指当出现缺页异常时&#xff0c;需要调入新页面而内存已满时&#xff0c;置换算法选择被置换的物理页面。 设计目标&#xff1a; 尽可能减少页面的调入调出次数&#xff1b;把未来不再访问或短期内不访问的页面调出。 页面锁定&#xff1a; 了解具…

烂泥:通过vsphere给esxi添加本地硬盘

公司ESXi服务器的硬盘空间不够使用&#xff0c;现在新加了一块硬盘在ESxi服务器上。在服务器上添加完硬盘后&#xff0c;在Vsphere上是看不到新加硬盘的。 下面我们来通过虚拟机模拟该情况&#xff0c;先添加一块硬盘。如下图&#xff1a; 在Esxi添加完硬盘后&#xff0c;现在通…

清华大学《操作系统》(九):进程和线程

进程 定义&#xff1a; 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行的过程。 组成&#xff1a; 代码数据状态寄存器&#xff08;正在运行的一个程序的所有状态信息&#xff09;&#xff1a;CPU状态CP0、指令指针IP通用寄存器&#xff1a;AX、BX、CX…

开始Flask项目

1.新建Flask项目。2.设置调试模式。3.理解Flask项目主程序。4.使用装饰器&#xff0c;设置路径与函数之间的关系。5.使用Flask中render_template&#xff0c;用不同的路径&#xff0c;返回首页、登录员、注册页。6.用视图函数反转得到URL&#xff0c;{{url_for(‘login’)}}&am…

烂泥:mysql数据库使用的基本命令

1、连接数据库的格式 mysql -h IP -u用户名 -p密码; 1.1连接远程数据库 mysql -h 192.168.1.214 -uroot -p123456 也可写成&#xff1a; mysql -h 192.168.1.214 -u root -p 123456 1.2连接本地数据库 mysql -uroot -p123456 也可写成&#xff1a; mysql -u root -p 123456 2、…

《操作系统》OS学习(十):进程控制

进程切换&#xff08;上下文切换&#xff09;&#xff1a; 定义&#xff1a;暂停当前运行进程&#xff0c;从运行状态变成其他状态&#xff0c;调度另一个进程从就绪状态变成运行状态要求&#xff1a;切换前&#xff0c;保存进程上下文&#xff1b;切换后&#xff0c;恢复进程…

GCC 命令选项使用详解

GCC 命令行详解[转帖] 1、gcc包含的c/c编译器 gcc、cc、c、g gcc和cc是一样的&#xff0c;c和g是一样的&#xff0c;一般c程序就用gcc编译&#xff0c;c程序就用g编译 2、gcc的基本用法 gcc test.c这样将编译出一个名为a.out的程序 gcc test.c -o test这样将编译出一个名为t…

mvn 打包_Spark源码打包编译的过程

前言上篇文章介绍了下 安装sbt环境 启动scala项目安装SBT环境运行Scala项目为什么要弄这个 因为我本来是想对spark源码编译部署spark是用scala语言编译的spark源码https://gitee.com/pingfanrenbiji/sparkspark提供的编译方式编译的前提是将所有的依赖包都下载下来而资源包管理…

清华大学《操作系统》(十一):处理机调度

一、处理机调度概念 进程切换&#xff08;上下文切换&#xff09;&#xff1a;切换CPU的当前任务&#xff0c;从一个进程/线程到另一个&#xff0c;保存当前在PCB/TCB中的执行上下文&#xff0c;读取下一个的上下文 CPU调度&#xff1a;从就绪队列中挑选一个进程/线程作为CPU…

对称加密与非对称加密

&#xff08;一&#xff09;对称加密&#xff08;Symmetric Cryptography&#xff09; 对称加密是最快速、最简单的一种加密方式&#xff0c;加密&#xff08;encryption&#xff09;与解密&#xff08;decryption&#xff09;用的是同样的密钥&#xff08;secret key&#xff…

清华大学《操作系统》(十二):临界区与锁

多进程并发运行&#xff0c;导致多个进程间有资源共享&#xff0c;比如CPU、内存&#xff0c;因此存在不确定性和不可重现&#xff0c;可能导致多次运行结果不一致。因此操作系统需要利用同步机制在并发执行的同时&#xff0c;保证一些操作是原子操作。 互斥是指一个进程占用了…

清华大学《操作系统》(十八):管程于信号量

信号量与管程也是进程间通信的方式。信号量是与锁在同一层级实现的&#xff0c;是操作系统提供的一种协调共享资源访问的方法。信号量由操作系统管理&#xff0c;操作系统作为管理者地位是高于进程的。 一、信号量 1、信号量&#xff08;semaphore&#xff09;&#xff1a;是操…

Iptalbes自动封杀暴力破解(Qmail邮件系统)者的IP地址

今天发现Qmail邮件系统的maillog里面有大量的“user not found”信息&#xff0c;通过下面的日志不难发现&#xff0c;是来自同一IP的很多不同的用户连接Qmail邮件系统认证失败的信息。黑客试图通过这种方式来破解Qmail邮件系统的用户名和密码&#xff0c;从而来发送大量的垃圾…

安装Postman

在web和移动端开发时&#xff0c;常常会调用服务器端的restful接口进行数据请求&#xff0c;为了调试&#xff0c;一般会先用工具进行测试&#xff0c;通过测试后才开始在开发中使用。 这里介绍一下如何在chrome浏览器利用postman应用进行restful api接口请求测试。 因为&#…

清华大学《操作系统》(二十):死锁和进程通信

一、死锁 死锁&#xff1a;一组阻塞的进程&#xff08;两个或多个&#xff09;&#xff0c;持有一种资源&#xff0c;等待获取另一个进程所占有的资源&#xff0c;而导致谁都无法执行。 可重复使用的资源&#xff1a; 在一个时间只能一个进程使用&#xff0c;且不能被删除。…

清华大学《操作系统》(二十二):文件系统

文件系统和文件&#xff1a; 文件系统是操作系统中管理持久性数据的子系统&#xff0c;提供数据存储和访问功能&#xff0c;组织、检索、读写访问数据。文件是具有符号名&#xff0c;由字节序列构成的数据项集合&#xff0c;是文件系统的基本数据单位&#xff0c;文件名是文件…