隨機產生20個[10 , 50]的正整數存到數組中,並求數組中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值

   隨機產生20個[10 , 50]的正整數存到數組中,並求數組中的所有元素最大值,最小值,平均值以及元素之和,第二大值
    int a[20] = {0};
    int max = 0;//存儲最大值
    int min = 50;//存儲最小值
    int sum = 0;//存儲元素之和

    //使用for循環生成一個含有20個隨機數的數組, arc4random 爲生成隨機數的函數
    for ( int i = 0; i < 20; i++) {
        a[i] = arc4random() % (50 - 10 + 1) + 10;
        printf("%d ", a[i]);//將數組中的每一個元素打印出來
    }
    printf("\n");//換行

    //求數組中所有元素的最大值
    for (int i = 0; i < 20; i++) {
        if (max < a[i]) {
            max = a[i];
        }
    }
    printf("max = %d\n", max);//將最大值打印出來

    //求數組中所有元素的最小值
    for (int i = 0; i < 20; i++) {
        if (min > a[i]) {
            min = a[i];
        }
    }
    printf("min = %d\n", min);//將最小值打印出來

    //求數組元素之和
    for (int i = 0; i < 20; i++) {
        sum += a[i];
    }
    printf("sum = %d\n", sum);//將數組元素之和打印出來

    //直接利用(數組元素之和/數組元素個數)得到數組元素的平均值,並打印
        printf("平均值爲: %.2f\n", sum / 20.0);

     //求數組元素中的第二大值
     int secondMAX = 0;//定義第二大值爲secondMax
     for (int i = 0; i < 20; i++) {
          if (secondMAX < max &&      secondMAX < a[i]) {
     //secondMax爲第二大值,所以當a[i] == max時,跳出本次循環,不進行下面的賦值操作
              if (a[i] == max) { 
                       continue;
              }
                 secondMAX = a[i];//當元素小於最大值且大於其他元素時,即爲第二大值
          }
      }

      printf("第二大值爲: %d\n", secondMAX);//將第二大值打印出來



發佈了17 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章