C语言第三次博客作业---单层循环结构
一、PTA实验作业
题目1
1.实验代码
char sex;
double h;
scanf("%d\n",&N);
for(i=1;i<=N;i++){
scanf("%c",&sex);
if(sex=='F'){
scanf("%lf\n",&h);
h=h*1.09;
printf("%.2f\n",h);}
if(sex=='M'){
scanf("%lf\n",&h);
h=h/1.09;
printf("%.2f\n",h);}
}
2. 设计思路
(1)定义整型变量N,i,字符型变量sex,浮点型变量h
(2)输入前来调查的用户数N
(3)用for语句执行循环N次
(4)如果性别为女性,输入女方的身高并计算
(5)如果性别为男性,输入男方的身高并计算
(6)输出情侣的最佳身高
3.本题调试过程碰到问题及解决办法
(1)刚开始是编译错误,把字符型变量定义成了整型变量,if语句里面少了等号和单引号,改正之后变成了答案错误
(2)先把代码复制到DEV上去运行,根据提示把语法错误改正,但在PTA提交每次都显示答案错误,无奈之下只好请了同学过来帮忙检查,竟然是因为我在for 语句后面加了分号
4.本题PTA提交列表
题目2
1.实验代码
int n,a,i,s;
scanf("%d %d",&a,&n);
s=0;
for(i=1;i<=n;i++)
s=s*10+a*i;
printf("s = %d",s);
2.设计思路
(1)定义变量i,a放输入的数,n放输入的个数,s放所有a的总和
(2)输入a和n
(3)给s赋初值为0
(4)执行循环计算s的值,当i>n时跳出循环
(5)输出s
3.本题调试过程碰到问题及解决办法
(1)刚开始有语法错误,后经过DEV改正,但是怎么调试答案都不正确,如上图所示,后来跟同学的代码对比了一下,发现并没有错误啊,仔细观察发现scanf()语句里面a和n的位置不一样,最后把a和n换过来答案就就正确了
4.本题PTA提交列表
题目3
1.实验代码
int N,n,i,min; //N存放输入的整数,n存放输入整数的个数,min存放输入的最小值//
scanf("%d",&n);
scanf("%d",&N);
min=N; //给最小值赋初值为N//
for(i=1;i<=n;i++){ //执行循环//
if(n==1)break; //如果n=1结束循环//
scanf("%d",&n); //重新输入一个整数N//
if(min>n) //将输入的整数与min作比较//
min=n;
}
printf("min = %d",min); //输出最小值min//
return 0;
2.设计思路
(1)定义变量N,n,i,min
(2)输入N,n
(3)给最小值赋初值
(4)如果输入的个数为1,结束循环
(5)重新输入一个整数N,判断最小值与输入整数的大小
(6)输出最小值
3.本题调试过程碰到的问题及解决办法
(1)逻辑不清楚导致编译错误,忘记了还有当输入的个数为1时循环结束,也没有赋初值
(2)解决办法还是一如既往地先用dev调试,如果还不对就问同学,因为有时候脑子会挂机,需要人指点
4.本题PTA提交列表
题目4
1.实验代码
int N,n,i,number; //N存放猜测的最大次数,number存放所猜数,i计数,n存放随机数//
scanf("%d %d",&n,&N);
for(i=1;i<=N;i++){
scanf("%d",&number);
if(i==1&&number==n){
printf("Bingo!\n");
break;
}
else if((i==2||i==3)&&number==n){
printf("Lucky You!\n");
break;
}
else if(number<n&&number>0)
printf("Too small");
else if(number>n)
printf("Too big\n");
else if(i>3&&number==n){
printf("Good Guess!\n");
break;
}
else if(number<0){
printf("Game Over\n");
break;
}
if(number!=n&&i>N)
printf("Game Over\n");
}
2.设计思路
(1)定义变量N,n,i,number
(2)输入猜猜的最大次数N和随机数n,执行循环
(3)输入所猜的数number,如果i1&&numbern,输出Bingo
(4)如果i2||i3)&&number==n,输出Lucky you
(5)如果number<n&&number>0,输出Too small
(6)如果number>n,输出Too big
(7)如果i>3&&number==n,输出Good Guess
(8)如果number<0,输出Game Over
(9)如果number!=n&&i>N,输出Game Over
3.本题调试过程碰到的问题及解决办法
好像少了点什么,感觉该有的步骤都已经有了,但是改了又改,至今还是没有完全正确,运行结果如图所示,改得我眼睛都花了,希望看我代码的同志可以给出一点提示