Member 12792145 Ответов: 1

На C++ я хочу, чтобы запустить мой массив тью мое письмо петле класс


У меня есть классы в массив и я хочу, чтобы запустить их бросил письмо класс я петли так, он может сказать, что он сколько у меня сколько б я получил и так далее.

void StatsList::PrintGradeCount()
{
	double gcount = 0;
	while (int j =! 1);
	{
		gcount = gcount + List[Listindex];
	
	
		



		if (gcount <= 100 && gcount >= 90) {
			cout << "A:" << gcount << endl;
		}
		else if (gcount <= 89 && gcount >= 80) {
			cout << "B:" << gcount << endl;
		}
		else if (gcount <= 79 && gcount >= 70) {
			cout << "C:" << gcount << endl;
		}
		else if (gcount <= 69 && gcount >= 60) {
			cout << "D:" << gcount << endl;
		}
		else if (gcount <= 59 && gcount >= 0) {
			cout << "F:" << gcount << endl;
		}
	}
	
	
	return;
}


Что я уже пробовал:

Сначала у меня была петля for, а потом я попробовал, пока думаю, что это неправильно, но может ли кто-нибудь помочь.

jeron1

Я боюсь

	while (int j =! 1); 
он ничего не собирается делать.

Вам, вероятно ,понадобятся отдельные переменные для подсчета а, подсчета в,...

Действительно ли необходим двойной тип?

Member 12792145

То, что я

for(int i = 0; i< Listindex; i++;){
    gcount = gcount + List[1]
    }

и у меня он был двойной, потому что некоторые переменные в массиве имеют десятичные дроби.

[no name]

j никогда не будет равняться 1, и сложение значений вместе из любого списка никогда не скажет вам, сколько у вас а. Он просто скажет вам общую сумму. Шаг за шагом напишите на листе бумаги то, что вы хотите сделать, а затем превратите это в код.

jeron1

for(int i = 0; i< Listindex; i++;){
    gcount = gcount + List[1]
    }


Последняя точка с запятой в операторе for не нужна.
"Список[1]" должен быть " Список[i]".

Что должен представлять собой gcount? Из того, что вы показали, gcount-это простая сумма всех оценок, это то, что вы хотите?

Member 12792145

void StatsList::PrintGradeCount()
{
	
	for (int i = 0; i < Listindex; i++)
	{
		List[i];
		cout << "grade: ";
	
		if (i <= 100 && i >= 90) {
			cout << "A:" << i << endl;
		}
		else if (i <= 89 && i >= 80) {
			cout << "B:" << i << endl;
		}
		else if (i <= 79 && i >= 70) {
			cout << "C:" << i << endl;
		}
		else if (i <= 69 && i >= 60) {
			cout << "D:" << i << endl;
		}
		else if (i <= 59 && i >= 0) {
			cout << "F:" << i << endl;
		}
	}
	
	
	return ;
}

Это то что я получил сейчас но это только подсчет количества массивов а не элементов в массиве

[no name]

"подсчет количества массивов" - нет, это не так, и он делает именно то, что вы ему сказали. Сделайте глубокий вдох, перечитайте домашнее задание, перечитайте то, что вам сказали, и подумайте о том, что вы делаете, а затем попробуйте снова.

jeron1

То, что у тебя есть сейчас, не имеет особого смысла. Я просто спросил, Что должен представлять собой gcount. Может быть, пришло время сделать глубокий вдох и выразить словами, Чего именно вы хотите достичь? Что представляют собой записи в массиве списков (ваши входные данные)и каков ожидаемый результат?

1 Ответов

Рейтинг:
2

Patrice T

То, что вы делаете, выглядит довольно запутанным, используйте отладчик, чтобы увидеть, что делает ваш код.

        if (gcount <= 100 && gcount >= 90) {
    cout << "A:" << gcount << endl;
}
else if (gcount <= 89 && gcount >= 80) {
    cout << "B:" << gcount << endl;
}
else if (gcount <= 79 && gcount >= 70) {
    cout << "C:" << gcount << endl;
}
else if (gcount <= 69 && gcount >= 60) {
    cout << "D:" << gcount << endl;
}
else if (gcount <= 59 && gcount >= 0) {
    cout << "F:" << gcount << endl;
}


Независимо от других ошибок, код с ошибкой при gcount составляет 89,5%. или 69,2
Код может справиться с этим случаем с помощью упрощения, потому что все if и else if у нас единая структура, которую вам нужно изучить.
предполагая, что gcount находится между 0 и 100:
        if (gcount >= 90) {
    cout << "A:" << gcount << endl;
}
else if (gcount >= 80) {
    cout << "B:" << gcount << endl;
}
else if (gcount >= 70) {
    cout << "C:" << gcount << endl;
}
else if (gcount >= 60) {
    cout << "D:" << gcount << endl;
}
else if (gcount >= 0) {
    cout << "F:" << gcount << endl;
}



Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Вот ссылки на справочники книг по С и с++ авторов этих языков. Обратите внимание, что C является предком C++, поэтому знание C всегда полезно с C++.
Язык программирования Си - Википедия, свободная энциклопедия[^]
https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf[^]
http://www.ime.usp.br/~ПФ/Керниган-Ритчи/с-Программирование-электронные книги.формат PDF[^]

Язык Программирования C++ [^]