任務:
撰寫一個 C 主程式,依次讀取五個整數 (int) 和數字 (int),最后輸出輸入的數字中的最小和最大。此外,將在輸入數字的位置輸出這兩個數字。被輸入。如果最終“極值”中的一個在輸入中出現不止一次,則應記錄第一次出現并在最后輸出。輸出。您的程式應該以這樣一種方式進行,它一個接一個地讀取輸入數字,一個接一個地讀取數字,并立即將迄今為止輸入的最小和最大數字存盤在專門提供的變數中。在迄今為止已經記憶的“極值”的輸入位置。到目前為止注意到的“極值”的輸入位置。剛剛輸入的數字將與目前存盤的兩個“極值”進行比較。這樣,您的程式就不必在最后比較所有五個輸入的數字(彼此相互)。在下周的測驗中,我必須使用 if 和 else 來解決沒有回圈和沒有陣列的類似任務。我已經在這里坐了幾個小時,只是不知道該怎么做。請幫我
This is how the output should look like:
Please enter the 1st number: ? 2
Please enter the 2nd number: ? 3
Please enter the 3rd number: ? 1
Please enter the 4th number: ? 5
Please enter the 5th number: ? 4
The 3rd number was the smallest of the numbers entered and is: 1
The 4th number was the largest of the numbers entered and is: 5
解決方法
int FirstNumber;
int SecondNumber;
int ThirdNumber;
int FourthNumber;
int FifthNumber;
cout << "Please enter the 1st:";
cin >> FirstNumber;
cout << endl;
cout << "Please enter the 2nd:";
cin >> SecondNumber;
cout << endl;
cout << "Please enter the 3rd:";
cin >> ThirdNumber;
cout << endl;
cout << "Please enter the 4th:";
cin >> fourthnumber;
cout << endl;
cout << "Please enter the 5th:";
cin >> FifthNumber;
cout << endl;
uj5u.com熱心網友回復:
您可以在輸入陳述句中添加額外的功能:
int FirstNumber;
int SecondNumber;
int ThirdNumber;
int FourthNumber;
int FifthNumber;
int max_number;
int min_number;
int position_max;
int position_min;
cout << "Please enter the 1st:";
cin >> FirstNumber;
cout << endl;
min_number = FirstNumber;
max_number = FirstNumber;
position_max = 1;
position_min = 1;
cout << "Please enter the 2nd:";
cin >> SecondNumber;
cout << endl;
if (SecondNumber > max_number)
{
max_number = SecondNumber;
position_max = 2;
}
if (SecondNumber < min_number)
{
min_number = SecondNumber;
position_min = 2;
}
uj5u.com熱心網友回復:
也許您可以創建一個輔助函式來減少一些重復:
#include <iostream>
#include <climits>
#include <string>
void MaybeUpdateMinMaxBasedOnUserNumber(const std::string& pos,
int *min, std::string *min_pos,
int *max, std::string *max_pos) {
std::cout << "Please enter the " << pos << " number: ";
int num;
std::cin >> num;
if (num < *min) {
*min = num;
*min_pos = pos;
}
if (num > *max) {
*max = num;
*max_pos = pos;
}
}
int main() {
int min = INT_MAX, max = INT_MIN;
std::string min_pos, max_pos;
MaybeUpdateMinMaxBasedOnUserNumber("1st", &min, &min_pos, &max, &max_pos);
MaybeUpdateMinMaxBasedOnUserNumber("2nd", &min, &min_pos, &max, &max_pos);
MaybeUpdateMinMaxBasedOnUserNumber("3rd", &min, &min_pos, &max, &max_pos);
MaybeUpdateMinMaxBasedOnUserNumber("4th", &min, &min_pos, &max, &max_pos);
MaybeUpdateMinMaxBasedOnUserNumber("5th", &min, &min_pos, &max, &max_pos);
std::cout << "The " << min_pos << " number was the smallest of the numbers "
<< "entered and is: " << min << '\n';
std::cout << "The " << max_pos << " number was the largest of the numbers "
<< "entered and is: " << max << '\n';
return 0;
}
示例用法:
Please enter the 1st number: 2
Please enter the 2nd number: 3
Please enter the 3rd number: 1
Please enter the 4th number: 5
Please enter the 5th number: 4
The 3rd number was the smallest of the numbers entered and is: 1
The 4th number was the largest of the numbers entered and is: 5
uj5u.com熱心網友回復:
#include <iostream>
#include <climits>
using namespace std;
std::string numPostString(int n)
{
std::string s;
if (n == 1) s = "st";
else if (n == 2) s = "nd";
else if (n == 3) s = "rd";
else if (n == 4) s = "th";
else if (n == 5) s = "th";
return s;
}
int main()
{
int FirstNumber;
int SecondNumber;
int ThirdNumber;
int FourthNumber;
int FifthNumber;
int s_num = INT_MAX;
int s_counter = 0;
int l_num = INT_MIN;
int l_counter = 0;
cout << "Please enter the 1st:";
cin >> FirstNumber;
cout << endl;
if (FirstNumber < s_num) {
s_num = FirstNumber;
s_counter = 1;
}
if (FirstNumber > l_num) {
l_num = FirstNumber;
l_counter = 1;
}
cout << "Please enter the 2nd:";
cin >> SecondNumber;
cout << endl;
if (SecondNumber < s_num) {
s_num = SecondNumber;
s_counter = 2;
}
if (SecondNumber > l_num) {
l_num = SecondNumber;
l_counter = 2;
}
cout << "Please enter the 3rd:";
cin >> ThirdNumber;
cout << endl;
if (ThirdNumber < s_num) {
s_num = ThirdNumber;
s_counter = 3;
}
if (ThirdNumber > l_num) {
l_num = ThirdNumber;
l_counter = 3;
}
cout << "Please enter the 4th:";
cin >> FourthNumber;
cout << endl;
if (FourthNumber < s_num) {
s_num = FourthNumber;
s_counter = 4;
}
if (FourthNumber > l_num) {
l_num = FourthNumber;
l_counter = 4;
}
cout << "Please enter the 5th:";
cin >> FifthNumber;
cout << endl;
if (FifthNumber < s_num) {
s_num = FifthNumber;
s_counter = 5;
}
if (FifthNumber > l_num) {
l_num = FifthNumber;
l_counter = 5;
}
std::cout << "the " << s_counter << numPostString(s_counter) << " is the smallest of the numbers you have entered : " << s_num << "\n";
std::cout << "the " << l_counter << numPostString(l_counter) << " is the largest of the numbers you have entered : " << l_num << "\n";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/515298.html
上一篇:如何給全域回呼函式一個本地實體?
