#c
#c
Вопрос:
Почему моя программа завершается досрочно? Она не завершена и будет иметь еще две функции: одну для усреднения числа, другую для отображения среднего значения.
Когда я запускаю программу через Visual Studio, она завершает работу после отображения первого «Score1:». Почему она не переходит в функцию getScore()?
Это работает, когда я помещаю программу в онлайн-компилятор, но не при компиляции и запуске из Visual Studio.
// Lab 8-1.cpp : Defines the entry point for the console application.
//
#include <iostream>
using namespace std;
void printInfo(); // printInfo prototype
int getScore(); // getScore prototype
int main()
{
int score1 = 0, score2 = 0, score3 = 0; // declare variables
printInfo(); // call printInfo function
cout << endl << "Score 1: "; // output: ask for first score
score1 = getScore(); // assign value to integer through getScore function
cout << endl << "Score 2: ";
score2 = getScore();
cout << endl << "Score 3: ";
score3 = getScore();
return 0;
}
// ******************************************************
// * The printInfo function displays a message about *
// * what the program does *
// ******************************************************
void printInfo()
{
cout << "This program accepts 3 integer scores betweenn";
cout << "0 and 50 (inclusive), and displays the averagen";
cout << "of the three tests.nn";
}
// **********************************************************
// * The getScore function takes in a value from the user, *
// * validates the input, and returns an int value *
// **********************************************************
int getScore()
{
int score;
cout << "Enter a number: ";
cin >> score;
while (score < 0 || score > 50)
{
cout << "nScore must be >= 0 or <= 50." << endl;
cout << "Please enter a new score:";
cin >> score;
}
return score;
}
Комментарии:
1. Вы пробовали запускать это в отладчике?
2. Да, вывод выглядит следующим образом: поток 0x3c08 завершается с кодом 0 (0x0). Поток 0x3dec завершается с кодом 0 (0x0). Поток 0x4148 завершается с кодом 0 (0x0). Программа ‘[11304] Lab 8-1.exe ‘ вышел с кодом 0 (0x0).
3. Я имею в виду фактическую отладку до того, как ваша программа умрет. И пошаговое выполнение кода.
4. ваш код в порядке, который получает 3 входных значения. попробуйте закрыть свой компилятор и создать новый проект, вставив свой код, перекомпилируйте и запустите
5. Вы не проверяете, не удалось ли прочитать пользовательский ввод, и вы не используете новые строки. Мы обсуждаем это здесь, в Stack Overflow, каждый божий день.