题目1

1.实验代码

	int N,i;  //N存放查询的用户数,i存放循环次数
	double high;  //存放用户身高
        char sex;      //存放用户性别
	scanf("%d",&N);
	for(i=1;i<=N;i++){
		scanf("\n%c %lf",&sex,&high);
		if(sex=='M'){
		printf("%.2f\n",high/1.09);
			
		}
		else{
		printf("%.2f\n",high*1.09);
		}
          }

2.设计思路

  • 第一步: 定义整型变量N存放查询的用户数,定义变量i存放循环次数,定义浮点型变量high存放查询用户的身高,定义字符型数据sex存放调查用户的性别。
  • 第二步: 输入调查的用户数N。
  • 第三步: 对输入sex,high并判断用户性别及输出最佳情侣身高做N次循环。

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

  • (1)未在循环语句中的输入语句中给%c前添加换行符使得sex字符输入为回车符。解决方法:在%c前添加换行符。
    C语言第三次博客作业---单层循环结构

4.本题PTA提交列表

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

题目2

1.实验代码

  int a,n,i,s,item;   /*a存放正整数a,n存放正整数n,i存放循环次数,
  s=0;                      s存放累加数,item存放每项数值*/
  item=0;
  scanf("%d %d",&a,&n);
  for(i=1;i<=n;i++){
  	item=item*10+a;
  	s=s+item;
  } 
  printf("s = %d",s);

2 设计思路

  • 第一步:定义整型变量a,n,i,s,item分别存放正整数a,n,循环次数,累加和,每项的数值。
  • 第二步:给s,item赋初值为0。
  • 第三步:输入正整数a和n。
  • 第四步:对 item=item*10+a,s=s+item进行n次循环。最终输出s的值。

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

  • (1)误把aaaa(n个)当作n个a相乘。解决方法:修改程序使得item=item*10+a。
    C语言第三次博客作业---单层循环结构
    C语言第三次博客作业---单层循环结构
    C语言第三次博客作业---单层循环结构

4.本题PTA提交列表

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

题目3

1.实验代码

int i,n,min,l,k;          /*i存放循环次数,n存放输入的个数,min存放最小值,
	scanf("%d",&n);     l存放输入的第一个数,k存放除第一个数以外的数 */
	scanf("%d",&l);
	min=l;
	for(i=1;i<n;i++){
		scanf("%d",&k);
			if(k<min){
			min=k;
		}
	}
	printf("min = %d",min);

2.设计思路

  • 第一步:定义整型变量i,n,min,l,k分别存放循环次数,输入的整数个数,输入整数中的最小值,输入的第一个整数,输入的剩余整数。
  • 第二步:输入整数个数和第一个整数。
  • 第三步:将输入的第一个整数的值赋值给min。
  • 第四步:对于输入剩余整数循环执行n-1次并判断输入的整数k是否小于第一个输入的整数的值min,若满足k小于min则将k的值赋给min。
  • 第五步:输出min的值。

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

  • (1)未在循环执行前输入第一个整数l,并赋值给min,使得程序无法进行。解决方法:在执行循环前先输入第一个整数并赋值给min。
    C语言第三次博客作业---单层循环结构

4.本题PTA提交列表

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

题目4

1.实验代码

	int count=0,flag,number1,number2,N;   /*电脑给出数numeber1,用户输入数
	flag=0;                                                 number2,count计数猜数次数*/
	scanf("%d",&number1);
	scanf("%d",&N);
 	while(count<N){
 		scanf("%d",&number2);
		count++;
		if(number2<0){
			break;
		}
		if (number2==number1){
			if (count<=3 && count>1){
			printf("Lucky You!\n");	
			}
			if (count>3 && count<=N){
				printf("Good Guess!\n");
			}
			if (count==1){
				printf("Bingo!\n");	
			}
			flag=1;                                  //flag=1表示number1=number2
			break;
		} 
		else if(number2>number1){
			printf("Too big\n");
		}
		else {
			printf("Too small\n");
		}	
	}
	if (flag==0){
		printf("Game Over\n");
	}

2 设计思路

  • 第一步:定义整型变量count,flag,number1,number2,N分别存放猜的次数,正确与否(正确以flag=1表示,错误以flag=0表示),电脑给的数字,用户猜测的数字,最大猜测次数。并赋初值count=0,flag=0.
  • 第二步:输入电脑给定的正整数number1和用户猜测的最大次数N。
  • 第三步:输入用户猜测的数字并且count++并判断number2是否为负值,若为负值则跳出循环,否则当number2等于number1时flag=1并判断count的值,若count大于1且不超过3则输出Luck You!,若count>3且count<N则输出Good Guess!若count==1则输出Bingo!,然后跳出循环。当count<N时执行上述循环。否则当number2>number1时输出Too bing,当number2<number1时输出Too small。
  • 第四步:判断flag的值,若flag==0,输出Game Over。

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

  • (1)未设置变量flag判断数字是否猜对,在循环外直接输出Game Over导致无论结果如何最终都会输出Game Over。解决方法:在进入循环前先定义变量flag=0并且在number1==number2时赋值flag=1最后在循环外判断flag值来判断是否输出Game Over。
    C语言第三次博客作业---单层循环结构

4.本题PTA提交列表

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

二、截图本周题目集的PTA最后排名。

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

三、本周学习总结

1.你学会了什么?

本周学习中我学会了for循环,while循环,do while循环的一些初级应用。

2.本周的内容,你还不会什么?

对于一些困难一点的循环语句程序题目还不能在规定时间内独自思考出来,对于循环语句与其他语句的结合使用还不够熟练。

相关文章: