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,但是总是忘记
posted @ 2017-11-01 22:51  折原临也  阅读(295)  评论(4编辑  收藏  举报