Я просто не уверен в том, как правильно использовать оператор if с массивами?
Я хочу использовать оператор if, который будет брать информацию из файла и прогонять каждое число. Я не знаю, как его отформатировать, потому что использую массивы. Ошибка, которую я получаю, - это "недопустимые типы ‘int[int]’ для индекса массива" для каждой части оператора if.
Вот мой полный код. Я знаю, что в этом коде есть и другие ошибки, но именно эта часть сбивает меня с толку больше всего на данный момент. Спасибо за любую помощь.
#include <fstream> #include <iostream> #include <string> #include <sstream> #include <iomanip> using namespace std ; int main () { string names [50] ; // Elf's name int numToys [50] ; // Number of toys made by each elf string rating [50] ; // Rating for elves based on number of toys string line = " " ; ifstream ins ; ins.open ("elves.dat") ; int i = 0 ; istringstream iss (line) ; while (getline(ins, line)) { istringstream iss (line) ; iss >> names [i] >> numToys [i] ; i++ ; for (int ii = 0 ; ii < 50 ; ii++) { cout << setw(0) << left << "Elves name:" << names[ii] ; cout << setw(10) << "Number of Toys Produced:" << numToys[ii] ; cout << setw(20) << "Rating:" << rating[ii] ; } cin.ignore () ; cout << names[0] ; } } void elfRating (int numToys, string&rating) { int t = 0 ; if (numToys [t] < 200) { rating = "-" ; t++ ; } else if (numToys [t] < 300) { rating = "*" ; t++ ; } else if (numToys [t] < 500) { rating = "***" ; t++ ; } else if (numToys [t] > 500) { rating = "*****" ; t++ ; } else { cout << "Error" << endl ; } }
Что я уже пробовал:
Я пытался установить t и использовать t++ после каждого, но я не думаю, что сделал эту часть правильно.
Mohibur Rashid
Итак, если значение numToys[t] == 500, то он выведет ошибку?
в функции вы объявили numToys как целое число, но вы подаете в суд на это как массив, есть ваша ошибка
Member 13479017
возгласы. Спасибо, я все исправил.