如何在没有某种数组的情况下输入多个值

How to enter multiple values without some sort of array

本文关键字:情况下 输入 数组      更新时间:2023-10-16

所以基本上我正在上一个入门 tp 编程课,我们已经学习了基础知识(循环、if 语句、变量类型等)。我正在解决一个程序,我必须要求用户输入 6 个不同的温度值,然后打印出 6 个值的最大值、平均值和范围。

我应该如何以及在哪里存储这 6 个数字?

cout<< "Enter 6 diff numbers" << endl;
float numbers;
cin >> numbers;
for ( .... i_++)
max = ;
min = ;

cout << .. << .... << endl;

这应该无济于事,因为 float 只能存储一个数字而不是 6。我应该如何在不使用任何类型的数组、函数等的情况下执行此操作?

我在想使用子字符串并将其声明为字符串或其他东西??

感谢您的帮助。

这是一种无需数组即可完成此操作而不会破坏其余作业的方法。

cout<< "Enter 6 different numbers" << endl;
float num1, num2, num3, num4, num5, num6, max, min, sum, avg;
cin >> num1 >> num2 >> num3 >> 
       num4 >> num5 >> num6;

祝你好运!

我提出了您可以在不使用数组的情况下使用的基本算法。假设开尔文的一切。

float max = 0; // Minimum Value Set for comparing with larger values
float min;
float sum = 0;
float avg = 0;
float tmp;
string number, alltheNumbers;
for( int i = 0; i < 6; i++ ){
   cin>>number;
   tmp = <float> number;
   if( tmp > max ){
      max = tmp;
   }
   sum += tmp;
   alltheNumbers += ',' + number; // Save all the numbers in comma seperated Strings
}
min = max;    // Maximum Found value set for finding minimum
std::string delimiter = ",";
size_t pos = 0;
while ((pos = alltheNumbers.find(delimiter)) != std::string::npos) {
    number = alltheNumbers.substr(0, pos); // Use the comma to retrieve all those numbers
    tmp = <float> number;
    if( tmp < min ){
      min = tmp;
    }
    alltheNumbers.erase(0, pos + delimiter.length());
}
avg = sum / 6;

因此,您有以下变量和所需数据。

max <- will have the maximum value
min <- will have the minimum value
avg <- will have the average value.

对@Zion第一个答案的改进,我认为将最小值和最大值初始化为第一个数字就足够了。在 for 循环输入编号之前,设置 max = 数字和最小 = 数字,然后从 i=1 开始 for 循环。