1. 程式人生 > >求最大值及其下標

求最大值及其下標

ase 第一次 一個 image eml std 檢索 要求 out

7-2 求最大值及其下標 (20 分)

本題要求編寫程序,找出給定的n個數中的最大值及其對應的最小下標(下標從0開始)。

輸入格式:

輸入在第一行中給出一個正整數n(1<n10)。第二行輸入n個整數,用空格分開。

輸出格式:

在一行中輸出最大值及最大值的最小下標,中間用一個空格分開。

輸入樣例:

6
2 8 10 1 9 10

輸出樣例:

10 2

(1)實驗代碼

#include <stdio.h>

int main()
{
int n,i;
scanf("%d",&n);
int a[n-1];

for(i=0; i<n;i++){

scanf("%d",&a[i]);
}
//在一行中輸出最大值及最大值的最小下標,中間用一個空格分開
int max;
max=0; //檢索最大值

for(i=1;i<n;i++){
if(a[i]>a[max]) {
max=i;
}
}

printf("%d %d",a[max],max);
return 0;
}

(2)設計思路

1.定義變量n,i,輸入n,定義數組a[n-1]。

2.用for循環依次輸入數值。

3.定義一個最大值max。

4.初始化max。

5.用for循環依次判斷if。

6.用if判斷數值是否大於max,大於就將該數賦值max,不大於max就不變。

7.輸出最大值及其下標。

(3)本題調試過程碰到問題及解決辦法

第一次先是分開執行找max,找下標,後來學會簡化代碼,第一次方式有點問題,問同學知道思路不對後改正

(4)實驗截圖

技術分享圖片

正確的截圖

技術分享圖片

求最大值及其下標