1.输入一组数,找出它的最大值,最小值,平均值。
关键点是要把第一个数赋值给min,max,sum
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int min,max,sum,i; 6 cin>>i; 7 min = max =sum = i; // 将输入的第一个数赋值,以便后续比较 8 int n = 0; // 统计输入了多少个数 9 while(cin>>i){ 10 n++; 11 sum += i; 12 if(max<i) max = i; 13 if(min>i) min = i; 14 } 15 cout<<"max = "<<max<<endl; 16 cout<<"min = "<<min<<endl; 17 cout<<"avg = "<<sum/(n+1)<<endl; 18 19 }
2.输入一组数,找出最接近的两个数。
3.输入一组数,找出第二大的数。
思路:利用两个变量,一个存储用来最大数(初始化为输入的第一个数),一个用来存储第二大的数(初始化为-INT_MAX),输入过程中不断更新。
1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int i; 7 int Max; 8 int LessMax; 9 cin >> i; 10 Max = i; 11 LessMax = -INT_MAX; 12 while (cin >> i) { 13 if (i > Max) { 14 LessMax = Max; 15 Max = i; 16 } 17 else if (i > LessMax) { 18 LessMax = i; 19 } 20 21 } 22 cout << LessMax << endl; 23 system("pause"); 24 }
4.输入一组数,统计不超过平均数的个数。
1 #include<iostream> 2 using namespace std; 3 int arr[100]; 4 int main() 5 { 6 int i=0; 7 int sum = 0; 8 9 while (cin >> arr[i]) { 10 sum += arr[i]; 11 i++; 12 } 13 int avg = sum / i; 14 15 int n = 0; 16 for (int j = 0; j < i; j++) { 17 if (arr[j] <= avg) 18 n++; 19 } 20 cout << n << endl; 21 system("pause"); 22 }