C语言第三次博客作业

一、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提交列表

    1233828-20171102192458232-1783155027.png

题目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提交列表

1233828-20171102194523857-453368728.png

题目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提交列表

    1233828-20171102201342904-956110376.png

题目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提交列表1233828-20171102220650029-1742674645.png

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

1233828-20171102222449310-84718836.png

三、本周学习总结

1.你学会了什么?

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

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

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

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

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

转载于:https://www.cnblogs.com/1028-zwj/p/7769207.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值