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没有加&,就是编译不出来。
posted @ 2017-11-02 21:54  君甚秀  阅读(209)  评论(4编辑  收藏  举报