前言
之前在學習C語言的時候遇到了一個問題,就是在沒有學習數組的情況下,如何計算多個數的最大值、最小值還有平均值。後來是使用了其他人的代碼完成的,沒有去思考如何去做,有點遺憾。
有一個剛學習C++的朋友也遇到了這個問題,正好這次可以真正地解決一下這個問題。
題目
連續輸入若干數,當輸入停止時,輸出這些數中的最大值、最小值、平均值。
注:主要的原理就是通過一個變量,多次地使用它,從而實現多個變量的效果。
每個人遇到的題目不一樣,你可以根據題目的意思來變更相應的代碼。
C語言代碼
//作者:小狐狸
//QQ:1307509553
#include<stdio.h>
int main()
{
int i;
int n;
printf("個數:");
scanf("%d",&n);
float sum=0;//和
float Max;//最大值
float Min;//最小值
for(i=1;i<=n;i++)//計算前n個數
{
float x;//臨時變量
scanf("%f",&x);
sum+=x;//求和
if(i==1)//初始化最大值、最小值
{
Max=Min=x;
}
if(i!=1&&Max<x)//當前值大於最大值時
Max=x;
if(i!=1&&Min>x)//當前值小於最小值時
Min=x;
}
printf("最大值:%f\n",Max);
printf("最小值:%f\n",Min);
printf("平均值:%f\n",sum/n);
return 0;
}
C++代碼
//作者:小狐狸
//QQ:1307509553
#include<iostream>
using namespace std;
int main()
{
int i;
int n;
cout<<"個數:";
cin>>n;
float sum=0;//和
float Max;//最大值
float Min;//最小值
for(i=1;i<=n;i++)//計算前n個數
{
float x;//臨時變量
cin>>x;
sum+=x;//求和
if(i==1)//初始化最大值、最小值
{
Max=Min=x;
}
if(i!=1&&Max<x)//當前值大於最大值時
Max=x;
if(i!=1&&Min>x)//當前值小於最小值時
Min=x;
}
cout<<"最大值:"<<Max<<endl;
cout<<"最小值:"<<Min<<endl;
cout<<"平均值:"<<sum/n<<endl;
return 0;
}