C語言輸入整數,用函式程式設計將其中最大數與最小數的位置互換然後輸出

時間 2021-08-11 17:18:43

1樓:匿名使用者

1.找出陣列中的最大值和最小值索引位置,然後將其交換即可#include

// 交換最大、最小值位置

void swaplimval(int *src, int len)else if (min > src[i])// 元素如果比最小數的,則重置最小值,及其索引

}if (maxlen == minlen) // 如果所有值一樣,不用交換

return;

int tem = src[maxlen]; // 交換最大、最小值src[maxlen] = src[minlen];

src[minlen] = tem;

}int main()

2樓:匿名使用者

#include

void main()

maxpos=minpos=0;

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

{if (a[i]>a[maxpos])

maxpos=i;

if (a[i]

3樓:匿名使用者

你程式的錯誤:

findmax和findmin邏輯不對,你的意思是要返回最大值與最小值得位置嗎,如果是這樣,完全沒有實現這個功能,無論怎樣,返回值都是9,如果你要返回最大最小值,那就不應該return i或者return j ,而應該return max或者return min

read函式也有問題,你返回一個值是什麼意思?有必要嗎?

無論是read函式,還是findmax,findmin函式,對於陣列迴圈遍歷時都只進行了9遍,你不是處理10個數嗎?

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

printf("%d ",a[i]);

for(i=t+1;i<=s;i++)

printf("%d ",a[i]);

這幾句**是什麼意思? 只是輸出陣列中的元素的話一個迴圈就夠,沒必要拆開啊?

總之,邏輯不清楚,其實這個問題非常的簡單,你可以一個函式就寫出來,遍歷10個數,用maxindex和minindex同時記錄最大值與最小值得位置,根據得到的maxindex和minindex 交換最大值與最小值在陣列中的位置,最後只需要輸出陣列即可

有什麼問題可以追問。

c語言從鍵盤任意輸入10個整數,程式設計實現將其中最大數與最小數的位置對換後,再輸出調整後的陣列。

4樓:匿名使用者

#include

#define maxsize 10

void fun(int a)

else if(a[i]

}temp = a[maxindex];

a[maxindex] = a[minindex];

a[minindex] = temp;

}main()

printf("\n");

fun(a);

printf("調換後:\n");

for(k=0;kprintf("%d ",a[k]);

}擴充套件資料:

陣列使用規則:

1.可以只給部分元素賦初值。當中值的個數少於元素個數時,只給前面部分元素賦值。

例如:static int a[10]=;表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。

2.只能給元素逐個賦值,不能給陣列整體賦值。例如給十個元素全部賦1值,只能寫為:

static int a[10]=;而不能寫為:static int a[10]=1;請注意:在c、c#語言中是這樣,但並非在所有涉及陣列的地方都這樣,資料庫是從1開始。

3.如不給可初始化的陣列賦初值,則全部元素均為0值。

4.如給全部元素賦值,則在陣列說明中, 可以不給出陣列元素的個數。例如:

static int a[5]=;可寫為:static int a=;動態賦值可以在程式執行過程中,對陣列作動態賦值。這時可用迴圈語句配合scanf函式逐個對陣列元素賦值。

5樓:聽不清啊

#include

void main()

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

printf("\n");        //換行max=a[0];min=a[0];

m=0; n=0;            //m,n也要有初值,否則最大最小數在a[0]就出錯

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

if(a[i]

}a[n]=max;

a[m]=min;

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

6樓:金色潛鳥

漏寫 初始 值 m=0,n=0;

補上即好。

7樓:愛笑

#include

#define arr_size 10

void maxminexchang(int a, int n);

int main(void)

temp=a[n-i];

a[n-1]=a[maxpos];

a[maxpos]=temp;

minvalue=maxvalue;

for(m=0;m

if(a[m]

temp=a[0];

a[0]=a[minpos];

a[minpos]=temp;

/************end**************/}

c語言程式設計 輸入整數,將其中最小的數與數對換,把最大的數與最後數對換。我的答案錯了

恆者致遠 在你的change函式中,由於你的迴圈控制變數i沒有控制好,導致了兩個迴圈都不能很好的完全遍歷整個陣列,所以答案是錯誤的。個人意見第一種方法是最大最小數的查詢用兩個迴圈實現,第二種方法是增加迴圈控制變數。謝謝 汐日南莘 include stdio.h int i int main void...

C語言程式設計 用陣列輸入整數,從大到小排序,然後輸出下標

幻兒 你是用手機提問的 回答字數的上限是100字 程式編出來超過了字數 建議你用電腦提問 上限是9999字 要不就把郵箱發上來 我給你傳到郵箱裡 要不程式不能完整顯示到頁面上啊 匿名 熱心 void goleft int x,int y void goright int x,int y 真的不能再低...

輕鬆c語言用函式輸入輸出,輕鬆C語言用函式輸入輸出

碧海風雲 有反應啊 首先輸入5個字元,隨後會輸出方才輸入的字元。include int main for i 0 i 5 i putchar n return 0 執行結果 輸入 abcde 輸出 abcde c語言中的輸入輸出函式總結 c語言中資料輸入輸出的概念及在c語言中的實現 1 所謂輸入輸出...