C语言第三次博客作业---单层循环结构
题目1: 最佳情侣身高
1.实验代码
int i,N;
double height; //height 为情侣最佳身高
char op;
scanf("%d\n",&N);
for(i=1;i<=N;i++){
scanf("%c%lf",&op,&height);
getchar();
if(op=='F'){
height=height*1.09;
printf("%.2f\n",height);
}
else{
height=height/1.09;
printf("%.2f\n",height);
}
2 设计思路
- 定义变量height,op,N
- 输入N的值
- i=1
- i<=N
- 输入op,height的值
- 如果op='M',则height=height/1.09,否则height=height*1.09;输出height
- i++,如果i>N,则跳出循环,否则继续重复第六步
3.本题调试过程碰到问题及解决办法
经过调试,发现监测变量发现%d后面要加上\n换行才可以
4.本题PTA提交列表(要提交列表,不是结果)
-题目2: 特殊a串数列求和
1.实验代码
int main(void)
{
double a,n,i,t,s; //整数a,n,s为总结果
t=s=0;
scanf("%lf%lf",&a,&n);
for(i=1;i<=n;i++){
t=t*10+a;
s=s+t;
}
printf("s = %.0f",s);
2 设计思路
- 定义变量a,n,i,t,s
- 输入a,n的值
- t=t*10+a
- s=s+t
- 如果i>n则跳出循环,否则重复步骤3
3.本题调试过程碰到问题及解决办法
结果无法出来
经过变量监测,发现算法错误,不应该用用两个if
4.本题PTA提交列表(要提交列表,不是结果)
题目3: 找出最小值
1.实验代码
int n,number,i,min;
scanf("%d",&n);
if(n==1){
scanf("%d",&number);
printf("min = %d",number);
}
else
if(n>1){
for(i=1;i<=n;i++){
scanf("%d",&number);
if(number<min)
min=number;
}
printf("min = %d",min);
}
2 设计思路
- 定义变量n,i,number,min
- 输入n的值
- 如果n=1,则min=number;
- 否则执行下面步骤
- i=1
- 如果i<n则循环6,7,8步骤
- 输入number的值
- 如果number<min,则min=number;
- i++
- 输出min
3.本题调试过程碰到问题及解决办法
经过监测变量发现当n=1是答案要不为1要不比1小,与结果不符,所以采用if-else语句
4.本题PTA提交列表(要提交列表,不是结果)
题目4: 猜数字游戏
1.实验代码
int i,N,number,a;
scanf("%d%d",&a,&N); //number为电脑数字,n 为猜测的次数,a为自己猜测的数字
scanf("%d",&number);
for(i=1;i<=N;i++){
if(number==a&&i==1){
printf("Bingo!");
break;
}
if(number==a&&(i>1&&i<=3)){
printf("Lucky You!");
break;
}
if(number==a&&(i>3&&i<=N)){
printf("Good Guess!");
break;
}
if(number>a)
printf("Too big");
if(number<a)
printf("Too small");
if(number<0){
printf("Game Over");
break;}
scanf("%d",&number);
}
if(i>N)
printf("Game Over");
2 设计思路
- 定义变量i,N,number,a
- 如果1次猜出该数,提示“Bingo!”
- 如果3次以内猜到该数,则提示“Lucky You!”
- 如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”
- 如果超过N次都没有猜到,则提示“Game Over”,并结束程序
- 如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序
3.本题调试过程碰到问题及解决办法
暂时没有什么好的解决方法,等下翻看课本
4.本题PTA提交列表(要提交列表,不是结果)
二、截图本周题目集的PTA最后排名。
三、本周学习总结
1.你学会了什么?
我学会了加\n与不加\n的区别,还有熟悉了for语句,特别是我学会了看完题目后,在纸上模拟步骤,考虑后才在Dev++上打代码,以前都是边打边想。
2.本周的内容,你还不会什么?
我不会的有我不太会调试(一些简单的算法会调试),在做完pta上的题目发现自己对一些循环与分支相结合的题目不太会。
3.分支结构上机考试总结。
1哪些地方错了,为什么?
- 程序编译不出来,答案部分正确,格式错误等等 ....
- 其原因是由于我对scanf,printf,概念不熟悉,习题做的不够多,尤其是scanf中忘记加&迟迟看不出来;
还有发现自己对于发现问题解决问题的能力太薄弱了,这“归功”于平常我一不会就问室友,看百度出的代码
2后续要怎么找程序错误?
当然是调试了,监控变量.
3)对自己成绩满意么?不满意的话要怎么改进?
- 不满意
- 改进的话在这次pta上我改了,全程都是我一人独立完成,虽然有些错误现在还是改不出来,但我从发现错误,改正错误中学会了,理解了很多概念,像scanf之类的概念,
还有就是程序编译不出来常见的解决方法,像scanf没有加&,就是编译不出来。