[英]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.