欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言第三次博客作业

程序员文章站 2022-07-13 21:52:49
...

一、PTA实验作业

题目1:最佳情侣身高

1.实验代码

      int n;
      double height1,height2;
      char sex,c;
      scanf("%d",&n); 
      while (n>0){                                  //当n大于0时循环
          scanf("%c%c%lf",&c,&sex,&height1);    //c用来获取输入n之后的回车键
          switch (sex){                                   //判断输入的sex是f还是m
              case 'F':height2=height1*1.09;n--;   //若是f,执行计算,n-1,跳出判断
            break;
             default :height2=height1/1.09;n--;    //若不是,执行另一计算,n-1,跳出判断
            break;
         }
          printf("%.2f\n",height2);
    }

2.设计思路

  • (1)定义一个整形变量n,和两个浮点型变量height1,height2,和两个字符型变量sex,c
  • (2)首先输入n的值,进行下列循环:1.输入c,sex和height的值,其中c用来获取输入n之后的回车键
    2.进入switch的条件语句倘若sex=‘F’,则:height2=height1*1.09,n=n-1
    否则height2=height1/1.09,n=n-1。直到n<0循环结束。
  • (3)最后以保留两位小数的方式输出height2.

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

    答:这道题刚开始的时候难到我了,做了好久都没做出来,提交结果一直都是运行超时,不知道为什么,后来
    改了很多遍才发现while语句中的判断条件弄反了。调试了一下进入了死循环,看来是对于while语句还掌握不够熟悉。
    后来看了书多次对比就懂得了()里的要为真,才能继续循环。

    4.本题PTA提交列表

    C语言第三次博客作业

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

1.实验代码

    int a,n,i=0,s=0,b=0;
    scanf("%d",&a);
    scanf("%d",&n);
    while(i<n){
    b=b+(a*pow(10,i));
    s=s+b;
    i++;
    }
    printf("s = %d\n",s);
    return 0;

2.设计思路

  • (1)首先先定义5个变量a,n,i,s,b,i用来对循环次数的限定,b用来存放aaa...的值,s用来存放总值。
  • (2)然后分别给i,s,b定义一个初始值0,接下来依次输入a,n的值
  • (3)进行一个循环b=b+(a*pow(10,i)),s=s+b,i=i+1.直到i>n循环结束。
  • (4)最后输出s的值。

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

答:这题很过分题目意思没有表明清楚,aaa难到不是表示三个a相乘吗?好吧是我理解错
题目的意思了,做了好久哦,思路那么清晰,都是答案错误,后来问了下舍友才直到这个aaa的含义
好吧,这题不难,在懂得题目意思后的我三两下就做出来了。不过感觉有个难点就是用那个b来存放aaa...的值,当时这边稍微想了一下。

4.本题PTA提交列表

C语言第三次博客作业

题目3: 找出最小值

1.实验代码

  int i,n,min,a;
  scanf("%d",&n);
  scanf("%d",&a);
  min=a;
  for(i=1;i<=n;i++)
  {
    scanf("%d",&a);
    if(min<=a)
    min=a;
    if(min>a)
    min=min;
  }
  printf("min = %d,min");

2.设计思路

  • (1)这题吧,我首先是先定义四个变量i,n,min,a,a是用来存放随机输入的数字min为最终的所有数中的最小值。
  • (2)然后输入n和a的值,令min=a。
  • (3)进行一个循环语句令i=1,i=i+1,直到i>=n结束循环
    1.首先在循环中再次输入一个a,让min的值与a进行比较。
    2.若min>a相当于最开始输入的那个值更大,则min=a,让min等于更小的一个值,
    3.若是min<a则说明上一个a的值为更小值,则min=min,
  • (4)最后输出min的值。

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

    答:这题呢,看似我上面的思路很清晰,可是答案错了,哈哈哈,我没有做出来,我和你一样感觉没问题呀,
    就是答案错误,我改了很多遍,我感觉自己可以做出来这题,所以我就没有问同学哦,回去再思考下,
    由于电脑不知道怎么会我的Devc都不能用所以都调试不了,很烦啊!好吧我回去再想下。

    4.本题PTA提交列表

    C语言第三次博客作业

题目4: 猜数字游戏

1.实验代码

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

2.设计思路

  • (1)首先定义四个变量mynumber yournumber n,i。然后输入mynumber和n的值。
  • (2)然后进入while的循环语句i=i+1,直到i>n是结束循环
  • (3)在循语句中又进行条件语句的嵌套,如果yournumber=mynumber并且i=1的时候输出Bingo!结束这个条件语句
    如果yournumber<0,直接输出Game Over!然后结束这个条件语句
    如果yournumber>mynumber输出Too big 结束这个条件语句
    如果yournumber1并且i<=3 则输出Lucky You!然后结束这个条件语句
    如果yournumber==mynumber并且i>3并且i<=n则输出Good Guess!然后结束这个条件语句
    如果yournumber>=0并且yournumber不等于mynumber则输出Game Over!
    是不是思路很清晰???哈哈哈

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

    这道题稍微有一点麻烦,难点主要是在while循环语句中嵌套的if语句,这需要比较清晰的思维和逻辑,和对于break的巧妙运用。
    当时我做的时候就是思路没有理清楚对于yournumber>=0&&yournumber!=mynumber这个语句不知道要放在循环内还是循环外比较合适。

    4.本题PTA提交列表C语言第三次博客作业

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

C语言第三次博客作业

三、本周学习总结

1.你学会了什么?

答:这周我主要是学习了循环语句和嵌套语句,学会了break,continue的相同点和不同点,不同点主要是continue只能用于循环,而break既可用于
循环也可用于switch语句。
还有就是学会了如何在循环中嵌套循环或者选择。初步接触了函数的使用。

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

嵌套语句真的有一点难,基本是由掌握,但是感觉题目还是有点难度,需要多加练习才行,今天看了翁恺的视屏感觉还挺有意思的,感觉会比老师讲的更好哦,哈哈哈。

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

这次上级考试我考的很不理想,说实话有点郁闷,这段时间傍晚需要去校运会训练好多次课都没有上到,然后最近也挺不自觉的代码打得少了,对学习开始有点松懈,
马马虎虎的有点开始应付作业,没有深入去思考。
错误的地方主要是一些细节,一些思维方式还是不行,感觉自己是那种比较笨的,想法都好奇怪,然后就是打字比较慢效率不高
然后我觉得以后还是要多看看翁恺的视屏,代码也要多大,问题还是需要深入去思考。因为笨所以更需要努力。