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


    题目1: 最佳情侣身高

    1.实验代码

    int i,N;                           
        double height;    //height 为情侣最佳身高   
        char op;               
        scanf("%d
    ",&N);	       
        for(i=1;i<=N;i++){    
        scanf("%c%lf",&op,&height); 
        getchar();
        if(op=='F'){
        	height=height*1.09;
            printf("%.2f
    ",height);
    		 }
    	else{	
    	     height=height/1.09;
            printf("%.2f
    ",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后面要加上 换行才可以

    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.你学会了什么?

    我学会了加 与不加 的区别,还有熟悉了for语句,特别是我学会了看完题目后,在纸上模拟步骤,考虑后才在Dev++上打代码,以前都是边打边想。

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

    我不会的有我不太会调试(一些简单的算法会调试),在做完pta上的题目发现自己对一些循环与分支相结合的题目不太会。

    3.分支结构上机考试总结。

    1哪些地方错了,为什么?

    • 程序编译不出来,答案部分正确,格式错误等等 ....
    • 其原因是由于我对scanf,printf,概念不熟悉,习题做的不够多,尤其是scanf中忘记加&迟迟看不出来;
      还有发现自己对于发现问题解决问题的能力太薄弱了,这“归功”于平常我一不会就问室友,看百度出的代码

    2后续要怎么找程序错误?

    当然是调试了,监控变量.

    3)对自己成绩满意么?不满意的话要怎么改进?

    • 不满意
    • 改进的话在这次pta上我改了,全程都是我一人独立完成,虽然有些错误现在还是改不出来,但我从发现错误,改正错误中学会了,理解了很多概念,像scanf之类的概念,
      还有就是程序编译不出来常见的解决方法,像scanf没有加&,就是编译不出来。
  • 相关阅读:
    关于字符函数的一些应用总结
    常用数字函数简单举例
    dump浅析B树索引
    pl/sql developer 登陆sys用户
    关于oracle11g简单的网络配置
    关于oracle数据库读取数据的三种方式
    创建表
    SQL*Plus 与数据库的交互
    Oracle编程艺术--配置环境
    MongoDB--(NoSQL)入门介绍
  • 原文地址:https://www.cnblogs.com/guobaoqing/p/7771749.html
Copyright © 2020-2023  润新知