练习3 控制语句
2. n个非负整数的统计
输入n个非负整数(n<1000),计算这n个非负整数的和、平均值、乘积、最小值和最大值。
输入格式: 依次输入n个非负整数,每个整数一行,当输入“-1”时结束。
输出格式: 分别输出这n个整数的和、平均值、乘积、最小值和最大值。每个结果各占一行。
输入样例: 在这里给出一组输入。例如:
13
27
14
-1
输出样例: 在这里给出相应的输出。例如:
Sum is 54
Average is 18
Product is 4914
Smallest is 13
Largest is 27
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n=0;
int temp;
vector<int> nums;
while(cin>>temp)
{
nums.push_back(temp);
n+=1;
if(getchar()==-1)
break;
}
int iSum=nums[0] , average , iProduct=nums[0] , iSmallest=nums[0] , iLargest=nums[0];
for(int i=1;i<n;i++)
{
if(nums[i]!=-1)
{
if(nums[i]>iLargest)
iLargest = nums[i];
else if(nums[i]<iSmallest)
iSmallest = nums[i];
iSum += nums[i];
iProduct *= nums[i];
}
}
average = iSum / (n-1) ;
cout << "Sum is " << iSum << endl;
cout << "Average is " << average <<endl;
cout << "Product is " << iProduct <<endl;
cout << "Smallest is " << iSmallest <<endl;
cout << "Largest is " << iLargest <<endl;
return 0;
}
正确用法:
while(cin>>temp)
错误用法:
while(1)
{
cin>>temp;
......