Member 12765182 Ответов: 1

Что я делаю неправильно в программировании на C++


Прочтите в списке а фамилию студента, средний балл и количество часов, заработанных студентом колледжа. Если они заработали 0 часов, то печатают нового студента, если они заработали хотя бы 1 час, но меньше 32, печатают первокурсника, от 32 до 60, второкурсника от 61 до 90, младшего и старше 90 лет старшего. Если они имеют более 3,2 ГПа и находятся в пределах 5 часов от следующего, то переместите их вверх. ( Не поднимайте новых учеников) Ваша программа должна работать для любого количества строк данных.

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

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

   char  name;
   double gpa;
   int hours;

   while(cin>>name>>gpa>>hours)
   {
   if( hours ==0)
   {
    cout<<" New Student "<<name<<" "<<hours<<" "<<gpa<<endl;
   }else
   if(( hours ==1) &&(hours <32))
   { if((gpa >3.2)&&(hours + 5))
     cout<<" Freshman "<<name<<" "<<hours<<endl;
     cout<<" Sophomore "<<gpa<<endl;
   }else 
   if(( hours ==32) &&(hours <=60))
   { if((gpa >3.2) && (hours + 5))
     cout<<" Sophomore "<<name<<" "<<hours<<endl;
     cout<<" Junior "<<gpa<<endl;
   }else
   if(( hours ==61)&& (hours <=90))
   { if((gpa >3.2) &&(hours + 5))
     cout<<" Junior "<<name<<" "<<hours<<endl;
     cout<<" Senior "<<gpa<<endl;
   }else 
   if(hours >90)
   {
    cout<<" Senior "<<name<<" "<<hours<<" "<<gpa<<endl;
   }
}

[no name]

Откуда нам знать? Мы не знаем, что ваша программа делает или не делает, или что ваш учитель сказал вам, когда вы попросили его помочь с домашним заданием.

Member 12765182

#включать

Richard MacCutchan

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

[no name]

Если вы считаете, что "#include " - это ваша полная программа, вам нужно вернуться и просмотреть свои учебные заметки.

Richard MacCutchan

Ваша программа не чужой.

Member 12765182

Это моя программа Кстати я разместил ее как решение потому что понятия не имею как работает этот сайт

Richard MacCutchan

Какова ваша программа и в каком решении Вы ее разместили?

Richard MacCutchan

Вы не знаете, как работает сайт, но предполагаете, что кто-то напишет вашу программу за вас. Вам не пришло в голову прочитать что-нибудь из часто задаваемых вопросов? Видеть Код проекта Быстрые ответы часто задаваемые вопросы[^].

Member 12765182

Я пытаюсь опубликовать свою программу

Richard MacCutchan

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

Richard MacCutchan

if(( hours ==1) &&(hours <32))
if(( hours ==32) &&(hours <=60))

Выражения, подобные этому, могут быть истинными только в том случае, если hours равно первому значению. Таким образом, для всех значений от 2 до 31 или от 33 до 60 он будет ложным.

jeron1

если((ГПД &ГТ;3.2) и усилитель; & (часы + 5) )

(ч + 5) - это логическое?

Philippe Mori

Кстати, если бы вы правильно отформатировали (отступили) свой код, его было бы легче понять. И не повредит добавить несколько новых строк и несколько лишних пробелов.

1 Ответов

Рейтинг:
1

Patrice T

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

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