C語言利用指標實現求陣列元素中的最大值和最小值

2022-03-09 07:22:37 字數 3580 閱讀 4712

1樓:天雲小店

可以通過定義一個指標變數來求陣列元素中的最大值與最小值。

#include

void main()

;double *max=(double *)malloc(sizeof(double));  // 最大值指標

double *min=(double *)malloc(sizeof(double));  // 最小值指標

int i;

*max = a[0]; // 初始化最大值*min = a[0]; // 初始化最小值for(i=1; i<7; i++) // 7表示陣列a的長度}

2樓:不破_樓蘭

#include

#define n 10

void main()

printf("%d %d\n",max,min);

}測試通過;

你的錯誤是因為在 p=p+i 時 p的指向可能 跳過了幾個數,而你在下次迴圈時,i還是以p指向陣列的開始位置計數的,所以造成了陣列超界

3樓:看海的駱駝

if(*p<*(p+i))

p=p+i;

if(*t>*(t+i))

t=t+i;

這一段有點問題

p和t一直在加

加到後來一準就出去了

改成:p和t不參與陣列的遍歷

4樓:匿名使用者

你錯在那兩if,那兩個if使不論a[i]是否大於a[i+1]兩個值都交換位置所以等於沒作用,分成兩次,先求出最大值,再求出最小值才行

5樓:

可以這樣改

#include

int main()

;max=a;

min=a;

for(i=0;i<5;i++)

c語言,使用指標作為函式引數,寫一求陣列中最大值和最小指的函式

6樓:風若遠去何人留

思路:2 以第一個數為最大/最小值。

3 遍歷其餘數,與最大/最小值比較,如果更大/小,則替換該值。

當遍歷結束,則得到最大及最小值。

**:void get_min_max(int *a, int l, int *min, int *max)}

7樓:丶風丿圖騰

#include

#define n 10

void main()

c語言中怎樣用指標找出一維陣列中的最大值和最小值並輸出它們的下標

8樓:

1、新建一個工程和.c檔案,並且輸入主函式和標頭檔案。

2、定義全域性變數。

3、定義變數型別。

4、用兩個for語句給陣列元素賦值。

5、呼叫求最小值的函式。

6、函式的總體流程如下圖。

7、在主函式中輸出結果,編譯、執行,得到最後結果。

9樓:問明

#include

int main()

int a[10],n,max,min,maxxiabiao,minxiabiao;

for(n=0;n<=9;n++)

scanf("%d",&a[n]);

max=min=a[0];

maxxiabiao=minxiabiao=0;

for(n=0;n<=9;n++)

if(a[n]>max)

max=a[n];

maxxiabiao=n;

else if(a[n]min=a[n];

minxiabiao=n;

return 0;

執行效果:

10樓:匿名使用者

#include

void main()

11樓:匿名使用者

最大:int s[n],i,j,a,*max;

max=s;

for(i=0,is[i])

最小稍微改下

c語言:求一組陣列最大值及最小值的下標。 10

12樓:匿名使用者

max=a[0];

min=a[1];

for(i=0;i<10;i++)

for(i=0;i<10;i++)

if(a[i]

用c語言編寫求陣列元素最大值和最小值!謝謝各位大佬

13樓:刺友互

2、得到輸出結果。

3、sort方式:陣列從小到大排序,陣列第一項就是最小值,最後一項就是最大值 。

4、得到輸出的結果。

5、假設當前陣列中的第一個值是最大值,然後拿這個值和後面的項逐一進行比較,如果後面某一個值比假設的還要大,說明假設錯了,我們把假設的值進行替換,依次類推。

6、首先不要管其他的,先把我們最後要執行的**都變為字串,然後把陣列中的每一項的值分別的拼接到這個字串中。

7、得到最終的結果。

14樓:聽不清啊

#include

int main()

{int i,n,max=-99999,min=99999,a[100];

scanf("%d",&n);

for(i=0;imax)max=a[i];

if(a[i]

(c語言)用指標求陣列的最大值最小值

15樓:吉祥二進位制

#include

int main()

;int max, min;

max = min = a[0]; //假設第1個元素即是最大值也是最小值。

int *p = a;

//遍歷陣列,找出陣列a中的最大數和最小數for (int inx=0; inx!=sizeof(a) / sizeof(int); ++inx)

printf("最大數:%d\t最小數:%d\n", max, min);

return 0;}

16樓:

陣列越界了,for(q++;q#includeint max(int *m,int n)int min(int *q,int n){int t;

t=*q;

for(q++;q

17樓:專治**

for(m++;m

n是不變的m增大就可以了

c語言,陣列名與陣列元素的關係,C語言,陣列名與陣列第一個元素的關係

主要有bai如下區別 1 數du組zhi名代表 陣列的首地址,若daoc abcdef 則陣列名c代表陣列元素內 a 的地址。2 s用於輸出一容個字串,對應的引數是陣列名 即陣列的首地址 輸出從陣列起始位置到陣列中第一個 0 之間的全部字元。2 c用於輸出一個字元,即字元的值。而陣列名是陣列的首地址...

陣列與陣列中的元素在C語言中都寫成比如a這個樣子的嗎?怎麼寫得一樣的呢

a 10 表示陣列只有在初始宣告陣列的時候,例如 int a 10 宣告一個大小為10的陣列,陣列a的元素表示是從a 0 a 9 陣列a的第10個元素應該是a 9 不是a 10 所以你說的陣列與陣列中的一個元素都寫成a 10 這種情況是不可能出現的。夠清楚吧,3q給分!1 陣列定義時 陣列型別 陣列...

C語言陣列判斷題 如果想使陣列中全部元素的值為0可以寫

估計是陣列初始化列表不能有表示式吧,而且你好端端寫零就寫零了,還要搞這麼一出,有什麼用呢。請注意,是使陣列的值為0,不是初值為0。如果說是初值的話那個題目的是對的 判斷題 如果想使一個陣列中全部元素的值為0 可以寫成 int a 10 0 10 答案是 x int a 10 是c非法語句。int a...