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

一、PTA实验作业

题目1:最佳情侣身高差

1.实验代码

  int N,i;
  double height;  //height表示身高
  char sex;  //sex表示性别
  (height>=1.0&&height<=3.0);
  (N>0&&N<=10);
  scanf("%d",&N);
  for(i=1;i<=N;i++){
      scanf("\n%c%lf",&sex,&height);
      if(sex==‘F‘){
          printf("%.2f\n",height*1.09);
      }
      else{
          printf("%.2f\n",height/1.09);
      }
  }

2.设计思路

  • 第一步:首先定义整型变量N,i,双精度浮点型变量height存放身高,字符型变量sex存放性别,输入N的范围1.0<=hight<=3.0
  • 第二步:输入N的值
  • 第三步:输入性别sex,输入身高hight,变量初始化 i =1
  • 第四步:如果输入的sex为F,则输出hight*1.09的值,并保留两位小数;否则,则输出hight/1.09的值,并保留两位小数。i 加一
  • 第五步:重复步骤3,直到 i >N

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

  • 这一题写了各种方法,for语句,while语句,switch语句但还是输出答案等于0.00,后来请教了同学要在输入的地方加上换行符,改成这样scanf("\n%c%lf",&sex,&height);输入的M或者F就不会被空格吸收了。

4.本题PTA提交列表

题目2:特殊a串数列求和

1.实验代码

 int a,n,i,s,item;  //item用于存放每一项,s用于存放累加和
  (a,n>0&&a,n<=9);
  scanf("%d%d",&a,&n);
  i=1;
  s=0;
  item=0;
  while(i<=n){
    item=item+a*pow(10,i-1);
    s=s+item;
    i++;
  }
  printf("s = %d\n",s);

2.设计思路

  • 第一步:定义变量a,n,i,s,item,item用于存放每一项,s用于存放累加和,输入a,n的范围0<a,n<=9
  • 第二步:变量初始化 i =1;s=0;item=0并且输入a,n的值
  • 第三步:item=item+a*pow(10,i-1);  s=s+item;  i++;
  • 第四步:重复步骤3,直到 i >N
  • 第五步:输出s的值

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

  • 本题没有太大的问题,在最开始思考的时候没有引进变量item,后来思考了几分钟想到公式就正确了。

4.本题PTA提交列表

题目3:找出最小值

1.实验代码

  int n,i,number,min;   //min为最小值
  (n>0);
  scanf("%d",&n);
  scanf("%d",&number);
  min=number;
  for(i=1;i<n;i++){
      scanf("%d",&number);
      if(number<min)
          min=number;
  }
  printf("min = %d\n",min);

2.设计思路

  • 第一步:定义整型变量i,n,number,min,n>0
  • 第二步:输入n的值,和一个number的值,并且将number的值赋给min
  • 第三步:再输入一个number,如果number>min,则把number的值再赋给min,i++;
  • 第四步:重复步骤3,直到i>=n
  • 第五步:输出miin的值

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

  • 把提示放进了循环里,输出了多个Enter marks:看到与题目输出不符,就把printf调了出去,然后devc++上对了pta还是答案错误,后来想到题目给出的输出格式里只有min等于多少,就把所有的输出提示都删掉了就对了。

4.本题PTA提交列表

题目4:猜数字游戏

1.实验代码

    int yournumber,mynumber,N,i,count;
    scanf("%d%d",&mynumber,&N);
    for(count=1;count<=N;count++){
        scanf("%d",&yournumber);
        if(yournumber<0){
            printf("Game Over\n");break;
        }
        else if(yournumber>mynumber&&count<=N)printf("Too big\n");
        else if(yournumber<mynumber&&count<=N)printf("Too small\n");
        else if(yournumber==mynumber){
            if(count==1){
            printf("Bingo!\n");
            break;
            }
            if(count==2||count==3){
            printf("Lucky You!\n");
            break;
            }
            if(count>3&&count<=N){
            printf("Good Guess!\n");
            break;
            }
        }
    }
    if(yournumber!=mynumber&&count>N)printf("Game Over");

2.设计思路

  • 第一步:定义变量 mynumber,yournumber,i,N。
  • 第二步:输入变量mynumber和N的值,mynumber表示系统随机产生数,N控制循环次数。
  • 第三步:进入循环语句判断输入的数与系统随机产生数的大小,如果在第一次就猜中就输出Too big,在前三次猜中就输出Lucky You!,在规定次数内猜中就输出Good Guess!,如果太大就输出Too big,太小就输出Too small,在游戏次数超过或者输入超出范围就输出Game Over。

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

  • 这题真的是印象深刻,devc++上的运行是对的,但是改了好几次提交了一直都只有一分,然后就一直修改,最后问了同学之后才发现,一直没有关注输入的顺序,mynumber与N输入顺序调换了,应该先mynumber再N。在当i>N时输出的game over也在循环外,可是就算在循环里面也是运行正确的,最后我还是把输出语句放到了循环外。如图

4.本题PTA提交列表

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

PTA排名

提交列表

三、本周学习总结

1.你学会了什么?

  • 学会了for语句循环,在约分最简分式那一题打破了惯性思维(惯性只使用i=1;i<=n;i++)。学会了字符型变量的输入,要注意回车和空格,回车空格也算字符,否则需要输入的字符就会被空格或者回车代替。
  • 会在恰当的位置使用break结束循环。
  • 学会了利用devc++进行简单的调试,根据输入数据的变化找出出错的地方。

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

  • 比较复杂的题目错了还是对调试比较不懂,自己的思路很难理清
  • do-while语句很少用,可能是不太判断,所以经常都是用while或者for语句
  • 对于没有输入的题目,像那个韩信点兵的题,就感觉会很吃力,但是这种例型我觉得多做做就会懂得的。

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

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

  • 那个输出时间的,最开始把12点也减去了12,然后加上PM,因为我看题目认为中午12点单位是PM,就把它跟下午的时间放在一起,导致答案错误

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

  • 由于时间不足我是问同学的,后续我想多利用一下调试,看看是哪一步出的问题,在进行修改,多练习调试

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

不满意。调试还是不太会,不知道在哪里断点比较好,有的时候就只会干看着,然后自己觉得哪里不对再去修改,并且打代码太慢,都很浪费时间。向同学请教,并且经常使用调试来寻找错误,然后打字练练练。

好文要顶 关注我 收藏该文  

时间: 2024-10-21 01:49:30

C语言第三次博客作业---单层循环结构的相关文章

C语言第五次博客作业--函数

一.PTA实验作业 题目1:6-2 简单实现x的n次方 1. 本题PTA提交列表 2. 设计思路 (1)定义函数 mypow( double x, int n ) (2)定义整型变量i为循环变量,浮点型变量sum为阶乘的积 (3)for i=1 to n 重复下面步骤 (4)计算sum=sum*x (5)返回sum的值 3.本题调试过程碰到问题及PTA提交列表情况说明 初始代码是这样的:提交错误为段错误 第二天学霸室友告诉说要用for循环和一个求阶乘的变量,然后我就添加了一个for循环,但是并没

C语言第六次博客作业--数据类型

一.PTA实验作业 题目1: 7-3 倒顺数字串 1. 本题PTA提交列表 2.设计思路 (1) 定义两个整型变量i,n,n为输出的数. (2)输入n. (3)若n的值不为1, for i=1 to i<=n, 输出i和一个空格, end. for i=n-1 to i>1, 输出i和一个空格, end. 输出1. (4)若n==1,则直接输出1. 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明 (1)没有考虑只输入1的情况. 解决方法:加入if(n==1)的情况. 题目2:7

C语言第六周博客作业--数据类型

一.PTA实验作业 题目1: 7-6 掉入陷阱的数字 1. 本题PTA提交列表 2.设计思路 定义变量N,i,g=1/位数/,a/各位数字相加的和/,b=0,j,N1,c,d/储存N/; do{ for(i=0;i 3.代码截图 4.本题调试过程中碰到的问题以及解决方案 题目2: 7-4 打印菱形图案 1. 本题PTA提交列表 2.设计思路 int n,a,i,l,j,k,g,h,count=0,count1=0; 输入n if((n-1)%2==0)则继续 由规律可以看出, 上半部分(大三角型

C语言第七次博客作业--一二维数组

一.PTA实验作业 题目1:7-3 出生年 1.本题PTA提交列表 2.设计思路 定义year为年份,number存放要求不同数字个数,count计数不同数位,i,rj,n,flag,u,v. a[4]存放年份各个位数. 输入year,number. for i=year to..... 定义a[4]={0},j=0,n=i. 对n取余再除10,将余数r依次存入a[j++]. count=1 for u=1 to u=3 flag=1 for v=0 to v=u-1 如果a[u]=a[v] f

C语言第五次博客作业

一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1) 首先先定义narcissistic函数. (2)定义四个整形变量n,a,d,cnt,sum,cnt用来计算有几位数,sum用来存放每个数的cnt次方的和. (3)进行一个循环,让n=number(防止后面需要用number时它的值发生变化),循环中n=n/10,直到 n<=0结束循环,其中每次循环cnt值都加一,用来计算number有几位数. (4)再进行一个for循环(让a=number

C语言第八次博客作业--字符数组

一.PTA实验作业 题目1:字符串转换成十进制整数 1. 本题PTA提交列表 2. 设计思路 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明 格式错误:因为我多输出了一个换行 部分正确:当我加了flag=1的时候,结果如图 然后我把flag=1给注释掉,还是部分正确,但是错的位置不一样了,结果如图 然后问了助教,他说我没有处理符号,运行结果有多了#,可是我不太明白怎么处理那个符号,虽然最后帮忙改正确了,可是还是没有弄清楚它 题目2:统计一行文本的单词个数 1. 本题PTA提交列表

C语言第十一次博客作业---函数嵌套调用

一.实验作业 1.1 PTA题目 题目:递归实现顺序输出整数 1. 本题PTA提交列表 2. 设计思路 printdigits函数 定义整型变量result存放结果 if n是10的倍数 result=n else 取n的个位数赋值给result 递归调用printdigits(n/10) 输出result 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明 ①递归出口错误.零的情况考虑错误. ②修改递归出口后正确. 1.2 学生成绩管理系统 1.2.1 画函数模块图,简要介绍函数功

闽江学院2015-2016学年下学期《软件测试》课程-第三次博客作业

1.  某网站管理系统,用户注册时,电话号码为可选输入项,输入格式为:区号-电话号码—分机号,中间用“-”隔开.以下为jsp页面上的设计,且并未对输入做任何控制. 假设系统现在需要取出中间的电话号码部分,代码如下: /** * * 该方法根据用户输入取出中间的电话号码部分 * @param strPhoneNum 电话号码,如:“0591-83279988—002” * @return 返回号码部分,如:“83279988” */ public String getPhoneNumber(Str

软件学院《软件测试》课程第三次博客作业

1.  某网站管理系统,用户注册时,电话号码为可选输入项,输入格式为:区号-电话号码—分机号,中间用“-”隔开.以下为jsp页面上的设计,且并未对输入做任何控制. 假设系统现在需要取出中间的电话号码部分,代码如下: /** * * 该方法根据用户输入取出中间的电话号码部分 * @param strPhoneNum  电话号码,如:“0591-83279988—002” * @return  返回号码部分,如:“83279988” */ public String getPhoneNumber(S