#c
Вопрос:
В коде я пытаюсь ввести восемь значений, введенных пользователем, а затем сложить эти значения вместе, сложить вместе, а затем добавить три и, наконец, разделить общее количество миль на восемь. Однако, когда я пошел, чтобы запустить этот код, я получил сообщение об ошибке без оператора <
Вот код, о котором идет речь, я приношу извинения за любое плохое форматирование, я новый пользователь этого сайта.
#include <iostream>
using namespace std;
int main()
{
int hourswalked, hourswalkedD2, hourswalkedD3, hourswalkedD4, hourswalkedD5,
hourswalkedD6, hourswalkedD7,hourswalkedD8;
int total_hours = hourswalked hourswalkedD2 hourswalkedD3 hourswalkedD4 hourswalkedD5 hourswalkedD6 hourswalkedD7 hourswalkedD8;
int total_miles = total_hours * 3;
int avg_miles = total_miles / 8;
cout << endl << "Please enter the number of hours you have walked each day of your hike" << endl;
cin >> hourswalked >> endl;
cin >> hourswalkedD2 >> endl;
cin >> hourswalkedD3 >> endl;
cin >> hourswalkedD4 >> endl;
cin >> hourswalkedD5 >> endl;
cin >> hourswalkedD6 >> endl;
cin >> hourswalkedD7 >> endl;
cin >> hourswalkedD8 >> endl;
cout << "You walked for " << total_hours << " hours." << endl;
cout << "You walked for " << total_miles << " miles." << endl;
cout << "On average you walked " << avg_miles << " miles." << endl;
return 0;
}
Комментарии:
1. вам это не нужно
>> endl
при использованииcin
.2. Вы уверены, что ошибка была
<<
и не>>
была ?3. Кроме того, вы должны выполнить вычисления после того, как присвоите значения восьми входным данным.
4. Не по теме, но вам следует почитать о циклах и
vector
s.5. Ваш компилятор должен предупредить вас об использовании этих переменных, прежде чем давать им значение. Убедитесь, что ваш уровень предупреждения повышен.
Ответ №1:
Предполагается, что вы получите ошибку при использовании последнего оператора «>>>» в cin.
Вам не нужно использовать» >> endl
«, когда вы принимаете ввод. Это требуется только тогда, когда вы хотите напечатать новую строку, а не когда вы вводите данные.
Просто удалите все « >> endl
» во время ввода, и все готово.
Пример кода:
#include<iostream>
using namespace std;
int main()
{
int hourswalked, hourswalkedD2, hourswalkedD3, hourswalkedD4, hourswalkedD5,
hourswalkedD6, hourswalkedD7,hourswalkedD8;
int total_hours = hourswalked hourswalkedD2 hourswalkedD3 hourswalkedD4 hourswalkedD5 hourswalkedD6 hourswalkedD7 hourswalkedD8;
int total_miles = total_hours * 3;
int avg_miles = total_miles / 8;
cout << endl << "Please enter the number of hours you have walked each day of your hike" << endl;
cin >> hourswalked;
cin >> hourswalkedD2;
cin >> hourswalkedD3;
cin >> hourswalkedD4;
cin >> hourswalkedD5;
cin >> hourswalkedD6;
cin >> hourswalkedD7;
cin >> hourswalkedD8;
cout << "You walked for " << total_hours << " hours." << endl;
cout << "You walked for " << total_miles << " miles." << endl;
cout << "On average you walked " << avg_miles << " miles." << endl;
return 0;
}
Ответ №2:
std::cin
принимает пользовательский ввод, вы можете запомнить это по >>
оператору, выглядит так, как будто он передает данные в переменную. Поэтому, когда вы помещаете std::endl
, вы «перенаправляете» данные std::cin
в переменную, но это не то std::endl
, для чего она предназначена. Ваше решение приведено ниже:
std::cin >> hoursWalked;
std::cout << std::endl;
Ответ №3:
Как говорили другие, вам не нужен эндл. Также используйте массив из 8 для хранения ваших часов.
int main()
{
int hourswalked = 0,
hourswalkedD2 = 0,
hourswalkedD3 = 0,
hourswalkedD4 = 0,
hourswalkedD5 = 0,
hourswalkedD6 = 0,
hourswalkedD7 = 0,
hourswalkedD8 = 0;
cout << endl << "Please enter the number of hours you have walked each day of your hike" << endl;
cin >> hourswalked
>> hourswalkedD2
>> hourswalkedD3
>> hourswalkedD4
>> hourswalkedD5
>> hourswalkedD6
>> hourswalkedD7
>> hourswalkedD8;
int total_hours = hourswalked hourswalkedD2 hourswalkedD3
hourswalkedD4 hourswalkedD5 hourswalkedD6 hourswalkedD7
hourswalkedD8;
int total_miles = total_hours * 3;
int avg_miles = total_miles / 8;
cout << "You walked for " << total_hours << " hours." << endl
<< "You walked for " << total_miles << " miles." << endl
<< "On average you walked " << avg_miles << " miles." << endl;
return 0;
}
Комментарии:
1. Большое вам спасибо! Это устранило ошибку операнда, но теперь все остальные операции не работают, потому что все переменные теперь просто установлены в 0, и когда я запускаю код, он выводит 0 для общего количества часов, общего количества миль и средних миль
2. Я обновил его, это потому, что вы должны выполнить вычисления после того, как пользователь даст вам значения.
3. Оооооооо, хорошо, я не знал, что порядок кода так важен в C , потому что я помню, что в python вы могли бы поместить свои переменные в начало и написать остальную часть кода так, как вы хотите, вместе с HTML, где вы можете сегментировать материал в голове и теле. Я думаю, от старых привычек трудно избавиться, лол
4. @tgol, Python такой же , он будет выполнять строки по порядку и использовать значение переменной во время выполнения строки.
Ответ №4:
int hourswalked, hourswalkedD2, hourswalkedD3, hourswalkedD4, hourswalkedD5,
hourswalkedD6, hourswalkedD7,hourswalkedD8;
cout << endl << "Please enter the number of hours you have walked each day of your hike" << endl;
cin >> hourswalked;
cin >> hourswalkedD2;
cin >> hourswalkedD3;
cin >> hourswalkedD4;
cin >> hourswalkedD5;
cin >> hourswalkedD6;
cin >> hourswalkedD7;
cin >> hourswalkedD8;
int total_hours = hourswalked hourswalkedD2 hourswalkedD3 hourswalkedD4 hourswalkedD5 hourswalkedD6 hourswalkedD7 hourswalkedD8;
int total_miles = total_hours * 3;
int avg_miles = total_miles / 8;
cout << "You walked for " << total_hours << " hours." << endl;
cout << "You walked for " << total_miles << " miles." << endl;
cout << "On average you walked " << avg_miles << " miles." << endl;
return 0;
Комментарии:
1. Пожалуйста, укажите дополнительную информацию в своем ответе. Как это написано в настоящее время, трудно понять ваше решение.