C++ 程式陣列

write a program that reads ten integer numbers and outputs the number of inputs which

are greater than 50, less then 50 and equal to 50.

the program should also display the average of numbers greater than 50 and the average of all numbers less than 50

能幫我翻譯並附程式

應該要用到陣列ㄅ

寫一個讀入十個整數的程式 並且輸出大於 等於 小於50的數字

程式也需要分別列出大於及小於50數字的平均值

是這ㄍ意思ㄇ

是指 10ㄍ數 先規列是否<=>50

若>50 球平均 <50球平均ㄇ

已更新項目:

我自己在上面加ㄌ

#include

using namespace std;

跑ㄉ動 但是我如何自己輸入 那10ㄍ數字啊

還有這ㄍ寫法沒看過哩

感覺像是副程式(還沒教過)

5 個解答

評分
  • 7 年前
    最佳解答

    #include <iostream>

    using namespace std;

    int main(){

    int n[10],i,total,count;

    //輸入數字並記錄進陣列n

    for(i=0;i<10;i++){

    cout<<"輸入第"<<i+1<<"個數字=";

    cin>>n[i];

    }

    cout<<endl;

    //依次判斷數字是否大於50

    total=0;

    count=0;

    for(i=0;i<10;i++)

    if(n[i]>50){

    count++;

    cout<<"第"<<i+1<<"個數字"<<n[i]<<"大於50"<<endl;

    total+=n[i]; //累加大於50的數

    }

    if(count)

    cout<<"共有"<<count<<"個數字大於50, 這些數字的平均="<<total/count<<endl<<endl;

    else

    cout<<"沒有數字大於50"<<endl<<endl;

    //依次判斷數字是否等於50

    count=0;

    for(i=0;i<10;i++)

    if(n[i]==50){

    count++;

    cout<<"第"<<i+1<<"個數字等於50"<<endl;

    total+=n[i];

    }

    if(count)

    cout<<"共有"<<count<<"個數字等於50"<<endl<<endl;

    else

    cout<<"沒有數字等於50"<<endl<<endl;

    //依次判斷數字是否小於50

    total=0;

    count=0;

    for(i=0;i<10;i++)

    if(n[i]<50){

    count++;

    cout<<"第"<<i+1<<"個數字"<<n[i]<<"小於50"<<endl;

    total+=n[i];//一樣進行累加

    }

    if(count)

    cout<<"共有"<<count<<"個數字小於50, 這些數字的平均="<<total/count<<endl<<endl;

    else

    cout<<"沒有數字小於50"<<endl<<endl;

    //如果用dev c++, 可以用system("pause");暫停螢幕, #include <stdlib.h>

    return 0;

    }

    參考資料: 最陽春入門的程式跟說明, 應該很淺顯易懂
  • 7 年前

    感謝大家ㄉ幫助

    謝謝"知識長"的超進階看不懂程式

    謝謝"北海牧羊人"淺顯易懂程式

    謝謝"Tai "一堆寶貴意見

    哇哈哈 我也打完ㄌ 也成功解決問題ㄌ

    最後應該是使用ㄌ FOR 迴圈

    謝謝指教~~

  • ?
    Lv 7
    7 年前

    struct dump {

    private:

    int sum[3], mid;

    unsigned cnt[3];

    public:

    dump(unsigned n) : mid(n){

    for(int i=sizeof(sum)/sizeof(sum[0])-1;i>=0;--i)

    sum[i]=cnt[i]=0;

    };

    void add(int x) {

    int indx = (x == mid) ? 1 : ((x > mid) ? 2 : 0);

    sum[indx] += x;

    ++cnt[indx];

    };

    void show(){

    char ss[3] = {'<', '=', '>'};

    for(int i=sizeof(ss)/sizeof(ss[0])-1; i >= 0; --i){

    cout << ss[i] << mid << " count=" << cnt[i];

    if (cnt[i]) cout << " avg=" << double (sum[i])/cnt[i];

    cout << endl;

    }

    };

    };

    int main(int argc, char *argv[]) {

    const int N=50;

    dump X(N);

    for(int n=45; n<55; ++n)

    X.add(n);

    X.show();

    return 0;

    }

  • Tai
    Lv 5
    7 年前

    十鱷魚,題意如你所說 :D

    並不需要用陣列存值,可用三變數 Larger, Eq, Less 在輸入中累計 >, =, < 的數量。另外有三變數 nLarger, nEq, nLess 儲存數量。

    結束十筆輸入後算平均值。注意算平均時要改用 float 或 double,而非整數除法。

    2013-10-27 23:00:40 補充:

    那不是副程式。知識長是將這一類:對一群數以比 N 大,等於N,小於N,分類後算平均的處理過程 "物件化",包裝成 struct dump。

    交這個作業老師會很高興,下兩堂課 struct, class 可不用教了。但跟助教說是副程式,成績會歸零。

  • 您覺得這個回答如何?您可以登入為回答投票。
  • 7 年前

    好像是ㄅ......

還有問題?馬上發問,尋求解答。