• 第四次作业


    作业要求:【https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522

    要求一:

    1、你观看了几个视频?给出观看列表截图。

     

    2、通过观看视频你学习到哪些知识点或者编程题目?

    我对数组各加的了解,以及对函数应用了解的更多了,另外还了解了一些二维数组。

    3、对于所学知识点还有哪些疑问?有哪些知识点没有学会?

     对于上周所学的知识点,函数的部分还有一点不熟练,我要再练习一下pta中的题,争取更加好的掌握这些知识点。

    要求二:

    第13次作业(数组)7-2 输出所有大于平均值的数 (15 分)

    本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。

    输入格式:输入在第1行中给出一个正整数n(1n10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。

    输出格式:输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。

    如果输入的n不在有效范围内,则在一行中输出"Invalid."。

    输入样例1:

    10
    55 23 8 11 22 89 0 -1 78 186

    输出样例1:
    47.10
    55 89 78 186 

    输入样例2:0
    输出样例2:Invalid.

    一.实验代码

    #include<stdio.h>
    #define N 10
    int main()
    {
      int i,num;
      double average,sum;
      sum=0;
      int a[N];
      scanf("%d",&num);
      sum=0;
      if(num>=1&&num<=10){
        for(i=0;i<num;i++){
          scanf("%d",&a[i]);
          sum=sum+a[i];
        }
      average=sum/num;
      printf("%.2f
    ",average);
      for(i=0;i<num;i++){
        if(a[i]>average)
        printf("%d ",a[i]);
      }
    }
    else{
      printf("Invalid.");
    }
      printf("
    ");
      return 0;
    } 

    二.解题思路

    1.步骤

    1).先定义整形变量num表示输入数的个数和i,再定义双精度变量average表示平均数,sum表示总和,同时定义数组a[num]。

    2).先输入数的个数,然后用if语句在for循环中输入数组中的数,求出总和sum。

    3).求average,并输出到小数点后两位。

    4).在for循环中用if语句找出大于平均值的数,有则输出,没有则输出Invalid.。

    运行的结果:

     2.流程图

     

    三.调试过程碰到的问题及解决办法

    在编译成功后,开始运行时出现了能运行但是没有结果的情况。

     后来找到是了是第19行代码应该输出的是a[i]不是a[num]

    还有一个问题就是测试点1的n=1一直是格式错误,后来知道应该在最后加上printf(" ");测试点通过了。

     

     调试过程,输入数组内数的个数和10个数的数据

    求平均值

    进入循环,找出比平均值大的数并输出,程序结束

    7-4 数字加密

    输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。

    输入格式:输入在一行中给出一个四位的整数x,即要求被加密的数。

    输出格式:在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。

    输入样例:1257

    输出样例:The encrypted number is 4601

    一.实验代码

    #include<stdio.h>
    int main()
    {
        int a[4];
        int i=3,x,b;
    
        scanf("%d",&x);
        while(i!=-1){
            a[i]=x%10;
            x=x/10;
            i--;
        }
        for(i=0;i<4;i++){
            a[i]=a[i]+9;
        }
        for(i=0;i<4;i++){
            a[i]=a[i]%10;
        }
        for(i=0;i<2;i++){
            b=a[i];
            a[i]=a[i+2];
            a[i+2]=b;
        }
        printf("The encrypted number is ");
        for(i=0;i<4;i++){
            printf("%d",a[i]);
        }
        return 0;
    }

    二.解题思路

    1.步骤

    1).先定义整形变量i、x、b,再定义数组a[4],输入四位整数x。

    2).用while循环语句将四位整数的每一位输入进数组a[4]中。

    3).用for循环将数组的每一个数加9。

    4).用for循环将数组的每一个数除以10取余。

    5).调整下标使千位和十位上的数字互换,百位和个位上的数字互换。

    运行的结果:

    2.流程图

     

    三.调试过程碰到的问题及解决办法

    这道题我只是在如何换位上思考了一下其他的步骤都很明确

    调试过程

    输入x=1257

    进入while循环并将每一个数输入进数组a[4]中

    经过前两个for循环将数组的每一个数先加9再除以10取余

    进入第三个for循环使千位和十位上的数字互换,百位和个位上的数字互换,最后输出a[i]的每一个数

     

     个人总结:本周学习了数组,感觉自己接受的还行,另外还有两个排序方法,冒泡法和选择排序法,选择排序法运用的还算熟练,冒泡法还需要加强,要在多看看书上的内容。

     

    作业点评:

    1.https://www.cnblogs.com/chumengGTRlhz/p/10116012.html

    2.https://www.cnblogs.com/nansu/p/10134717.html

    3.https://www.cnblogs.com/0224ming/p/10164004.html

  • 相关阅读:
    jQuery 选择器 与 事件
    JavaScript 语法
    Java 包(package)
    Java 接口
    java封装继承多态---继承篇
    Java数组的学习
    java基础周总结
    JAVA基础接口集合框架
    周总结
    Java基础
  • 原文地址:https://www.cnblogs.com/freedomjdp/p/10115746.html
Copyright © 2020-2023  润新知