c语言第三次作业
一、PTA实验作业
题目一
1实验代码
int N,i;
double height;
char sex;
scanf("%d",&N);
for(i=0;i<N;i++) {
scanf(" %c%lf",&sex,&height);
if(sex=='F')
printf("%.2f\n",height*1.09);
if(sex=='M')
printf("%.2f\n",height/1.09);
2.设计思路
- 定义整型N为前来查询的用户总人数,i为前来查询的人,height为身高,sex为性别,F为女,M为男
- 输入N
- 输入性别和身高
- 如果是女性,输出height*1.09,如果是男性,输出height/1.09
- i=i+1
- 重复步骤4,直到i=N
3.本题调试过程中碰到问题及解决办法
这道题刚开始我定义的变量不合适,我定义了F和M为两个整型变量,没有想到使用字符型常量,导致结果一直出错,后来问了问同学,发现要用字符型,改正后就对了
4.PTA提交列表
题目二
1实验代码
int a,n,s,i;
a<=9;n<=9;
scanf("%d %d",&a,&n);
s=0;
for(i=1;i<=n;i++) {
s=10*s+a*i;
}
printf("s = %d",s);
return 0;
2.设计思路
- 定义整型变量a和n为两个整数并且都小于等于9,s为和
- 输入a,n
- s=0,i=1
- s=10s+ai;
- i++
- 重复步骤4,直到i>n
3本题调试过程中碰到问题及解决办法
代码中s的表达式不正确,导致结果一直不正确
4.PTA提交列表
题目三
1实验代码
int n,min,i,number;
scanf("%d",&n);
min=number;
if(n>1){
for(i=1;i<n;i++){
scanf("%d",&number);
if(min>number)
min=number;
}
printf("min = %d",min);}
else if(n==1){
scanf("%d",&number);
printf("min = %d",number);
}
else
printf("no");
2.设计思路
- 定义整型变量n,min,i=1,number为随后输入的数
- 输入n
- min=number
- 若n>1,输入number,如果number<min,min=number,输出min
- 重复步骤4,直到i=n
- 如果n=1,min=number,输出min
- 否则输出no
3本题调试过程中碰到问题及解决办法
不知道当n<1的时候该怎样输出
4.PTA提交列表
题目四
1实验代码
int mynumber,yournumber,N,flag,count;
flag=0;
scanf("%d%d",&mynumber,&N);
do{
scanf("%d",&yournumber);
count++;
if(yournumber<0){
printf("Game Over\n");
flag=1;
}
else if(yournumber<mynumber){
printf("Too small\n");
}
else if(yournumber>mynumber){
printf("Too big\n");
}
else{
if(count==1){
printf("Bingo!\n");
}
else if(count<=3){
printf("Lucky You!\n");
}
else{
printf("Good Guess!\n");
}
flag=1;
}
if(count==N){
if(!flag ){
printf("Game Over\n");
flag=1;
}
}
}
while(!flag);
2.设计思路
- 定义整形变量mynumber为随机数,yournumber为我的数,N为次数,flag控制循环
- 输入mynumber,N
- 输入yournumber
- 若yournumber<0,输出Game Over,循环结束
- 若yournumber<mynumber,输出Too small,循环结束
- 若yournumber>mynumber,输出Too big,此次循环结束
- 若yournumber=mynumber,count=1,输出Bingo,循环结束
- 若yournumber=mynumber,count <=3,输出Lucky You,循环结束
- 若yournumber=mynumber,count >3,输出Good Guess,循环结束
- 若yournumber!=mynumber,i=N,输出Game Over,循环结束
3本题调试过程中碰到问题及解决办法
我先考虑了mynumber和yournumber的关系,猜的次数不知道该放在那里,询问同学后得知需要用ifelse的嵌套把
mynumber和yournumber嵌套在循环里
4.PTA提交列表
二、截图本周题目集的PTA最后排名
1.PTA排名
三、本周学习总结
1.你学会了什么?
- for循环括号里有三个表达式,视情况有些表达式可以不写。判断条件为真时进入循环,执行循环时,前两个表达式先执行,最后执行第三个表达式,第二个表达式限定范围
- while循环执行循环直到表达式的值是假的,然后循环终止执行下一条语句。循环次数清晰的时候多用for循环大部分情况下用while循环
- do-while循环先执行循环体,然后判断循环条件。无论条件的值如何,都会至少执行一次循环体
- break语句循环提前结束,并且要和if语句配合使用;continue语句是跳过continue语句后面的语句,继续下一次循环,一般也要和if语句一起使用
2.本周的内容,你还不会什么?
- 有些代码的循环顺序还不能确定;循环条件判断不清晰,不清楚到底该在哪里终止循环
- do-while语句改在什么时候使用,基本都在用while语句和for语句
- for语句的嵌套循环,分不清循环初始化语句到底该放在那里
- 有些变量要在循环前定义值是0,但是总是忘记