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

时间:2016-03-19 23:20:05

标签: c++ arrays string

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

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

cout<< "Enter 6 diff numbers" << endl;
float numbers;
cin >> numbers;

for ( .... i_++)

max = ;
min = ;


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

//这应该没有帮助,因为float只能保存一个数字而不是6.如果不使用任何类型的数组,函数等,我该如何做?

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

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

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

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.

答案 1 :(得分:1)

这是一种不使用数组而不会破坏其余作业的方法。

cout<< "Enter 6 different numbers" << endl;

float num1, num2, num3, num4, num5, num6, max, min, sum, avg;

cin >> num1 >> num2 >> num3 >> 
       num4 >> num5 >> num6;

古德勒克!

答案 2 :(得分:0)

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