【例题1】
从键盘读入n(1<=n<=100)个正整数,输出最大值。
【算法分析】
(1)假设一个最大值maxx=0;
(2)maxx依次跟数组中的元素进行比较;
(3)如果该数组元素大于maxx,则将该数组元素值赋值给maxx;
(4)maxx即为该数组中的最大值。
【参考代码】
#include<bits/stdc++.h>
using namespace std;
int n,a[105];
int maxx=0;//maxx初始值要比任一数组元素的值小
int main()
{
cin>>n; //读入数组元素个数
for(int i=1;i<=n;i++) //数组赋值
cin>>a[i];
for(int i=1;i<=n;i++) //数组元素依序跟maxx比较
if(a[i]>maxx) maxx=a[i];
cout<<maxx; //将最大值输出
return 0;
}
从键盘读入n(1<=n<=100)个互不相同的正整数,问第几个数是最大值。
【算法分析】
(1)假设一个最大值maxx=0.并定义一个变量pos记录最大值下标;
(2)maxx依次跟数组中的元素进行比较;
(3)如果该数组元素大于maxx,则将该数组元素值赋值给maxx,同时将该元素的下标值赋值给pos;
(4)pos即为该数组中的最大值的下标。
【参考代码】
#include<bits/stdc++.h>
using namespace std;
int n,a[105];
int maxx=0,pos;//maxx初始值要比任一数组元素的值小
int main()
{
cin>>n; //读入数组元素个数
for(int i=1;i<=n;i++) //数组赋值
cin>>a[i];
for(int i=1;i<=n;i++) //数组元素依序跟maxx比较
if(a[i]>maxx) maxx=a[i],pos=i; //记录最大值跟最大值的下标
cout<<pos; //将最大值下标输出
return 0;
}