簡體   English   中英

C ++單個元素的數組增量

[英]C++ Array increment of individual elements

您好我正在嘗試使用數組打印下表,第一列包含電影的評級,第二列包含評級為1,2,3等的人數。

i[rating]             sum_rating[number of people who have rated 1, 2, 3 and so on]                   
1                     3
2                     2
3                     4
4                     1
5                     6

繼續我到目前為止所嘗試的內容

#include <iostream>
using namespace std;
int main() {

int reviewNum, i, j;
int rating[250], sum_rating[250];

cout << "Enter the number of reviews" << endl;
cin >> reviewNum;

cout << "Enter ratings " << endl;
for (i = 0; i < reviewNum; i++ ) {
  cin>> rating[i];
}

for ( i = 0; i <= 5; i++)
sum_rating[i] = 0;

for (int i=0; i< reviewNum; i++){
    for(int j=0; j <=5; j++){
        if(rating[i]==j){
            sum_rating[i] += 1;
        }
    }
 }

cout << "Rating \t Number of people \n";
for ( i = 0; i <= 5; i++)
  cout << "   " << i+1 << " \t\t" << sum_rating[i] << endl;

return 0;
}

我以某種方式獲得此程序的錯誤輸出,我的ide沒有顯示任何錯誤。 有誰可以解釋哪里出錯了?

您的主要錯誤是在計算統計信息的循環中:

for (int i=0; i< reviewNum; i++){
    for(int j=0; j <=5; j++){
        if(rating[i]==j){
            sum_rating[i] += 1;
        }
    }
}

使用您呈現的結構和索引,您應該增加sum_rating[j] ,而不是sum_rating[i] 當然,問題的一部分是你做得太復雜了。 通過簡單地執行此操作,最好完全避免內部循環:

for (int i=0; i< reviewNum; i++){
    sum_rating[rating[i]] += 1;
}

對於評分是從1還是1還是從1到6,您似乎也有點不一致,並且您沒有對輸入進行驗證,但這些問題相對較小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM