C語言程式 輸入整數,將其中最小的數與數兌換,把最大的數與最後數對換。寫函式

時間 2022-03-08 14:55:12

1樓:鬱草小沙彌

你的**裡出現的問題比較嚴重,屬於基礎知識性的錯誤,非常嚴重的錯誤有以下幾點(都是知識性錯誤,一定要注意改過來):

1.函式呼叫和函式宣告的區別。你的main函式裡使用的

void sort(int array,int n);

int sr(int a[10]);

int sc(int a[10]);

這三句,其實並不是呼叫函式,只是宣告函式。宣告函式的函式就是告訴編譯器:這些函式我在後邊定義的,你先給我通過吧。

而呼叫函式就是傳入引數使用這個函式。在具體使用上,帶有函式型別和引數型別的(比如上邊三行**裡的"int")就是宣告函式,不帶有型別的,這樣寫:sr(a[10]);這樣才是正確的呼叫函式,這樣就會進入函式進行資料處理。

2.函式返回值。你的sr和sc函式都是int返回值,但是return(a[10]);很明顯你是想要返回整個陣列,這肯定是不匹配的。

3.還是返回值,其實形參為陣列名的話,傳入的就是陣列首位址,用位址傳入就沒必要返回這個陣列了,因為函式拿到位址操作之後資料就已經改變,無需返回。

4.形參的問題。形參是有生命週期的,只在乙個函式內有效,你的main函式根本就沒有定義相關變數,乙個函式結束之後,其內所有變數就沒了,無法傳給下一函式。

這4個錯誤會導致一系列錯誤產生,其他錯誤要在改正這四個錯誤之後再改,一定要研究例題,搞懂原理。

2樓:

//全寫在乙個函式內,自己調整下!

#include

void main()

if(f[j]

}k=f[0];

f[0]=f[b];

f[b]=k;

if(f[9]!=max)

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

printf("%d ",f[k]);}

3樓:庫運盛

#include

void sort(int array,int n);

int sr(int a[10]);

int sc(int a[10]);

int main(void)

;sr(a); //呼叫輸入函式

sort(a,10); //呼叫處理函式

sc(a); //呼叫輸出函式

//以上就是呼叫三個函式的形式

return 0;

}int sr(int a[10])

void sort(int array,int n)//最小的值與第乙個值交換

tmp = array[0];

array[0] = array[min];

array[min] =tmp;

//最大的值與最後乙個值交換

tmp = array[n-1];

array[n-1] = array[max];

array[max] =tmp;

}int sc(int a[10])

4樓:匿名使用者

把 void main()調到最後就沒問題了。

#include

int sr(int a[10])

void sort(int array,int n)}int sc(int a[10])

void main()

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

5樓:恆者致遠

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

6樓:匿名使用者

if(m>b[i+1]) //應該是< 吧

if(n

s, t 的變數似乎沒意義啊,

最後將d[0]與 n 交換 //d[1]與 n 交換將d[9]與 m交換 //d[10]與 m交換還有你的陣列是從0---9,還是1--10 ?

c語言程式設計:輸入10個整數,將其中最小的數與第乙個數對換,把最大的數與最後乙個數對換。

c語言程式設計 輸入10個整數,將其中最小的數與第乙個數對換,把最大的數與最後乙個數對換。

7樓:蝸居小笨笨

你的程式錯誤在求最值的函式maxmin。你定義了max,min,卻沒有使用,說明你對老師講過的求最值的演算法有些印象,但沒有理解。

第乙個明顯的錯誤是a[b]。陣列a的下標應該是0~b-1,a[b]裡是垃圾值,用它做比較,是典型的下標越界,當然結果是錯的。

第二個錯誤是求最值的演算法,也是我們要重點討論的。

以最小值為例:

你在查詢最小數時,將找到的最小直接賦給a[0],雖然將最小數放在a[0],但導致陣列的資料被改寫,這是錯誤的。

求最小值的演算法是這樣的,一般我們假設陣列的第乙個元素為最小值,然後和其他陣列元素依次比較,記下每次比較找到的「小」數,然後再將找到的「小」數與下乙個元素比較。比較到第b-1個元素,記下的「小」數就是最小數。

每次找到的「小」數用下標來標記。這裡可以用min存「小」數的下標。

找最大數類似。

所以程式改為:

void maxmin(int a, int b)

t=a[0];a[0]=a[min];a[min]=t;

t=a[b-1];a[b-1]=a[max];a[max]=t;}

8樓:鬧惺炙

#include

#define n 10

void main()

k=x[0]; x[0]=(*pmin); (*pmin)=k;

k=x[n-1]; x[n-1]=(*pmax); (*pmax)=k;

}滿意請採納。

c語言作業:輸入10個整數,將其中最小的數與第乙個數對換,把最大的數與最後乙個數對換。

c語言:輸入10個整數,將其中最小的數與第乙個數對換,最大的數與最後乙個數對換,並輸出兌換後的10個數

9樓:匿名使用者

#include

#include

int main()

printf("%d,%d\n",*p1,*p2);

int temp;

temp=a[0];a[0]=*p2;*p2=temp;

temp=a[9];a[9]=*p1;*p1=temp;

for(i=0;i<10;i++)//最後還有這裡,應該是<10printf("%d ",a[i]);

system("pause");

return 0;}

10樓:匿名使用者

感覺你寫的好亂,多改了點

#include

#include

int main()

temp=*p1;*p1=*p2;*p2=temp;

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

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

system("pause");

return 0;}

c語言,輸入10個整數,將其中最小的數與第乙個數對換,把最大的數與最後乙個數對換

11樓:鬧惺炙

#include

#define n 10

void main()

k=x[0]; x[0]=(*pmin); (*pmin)=k;

k=x[n-1]; x[n-1]=(*pmax); (*pmax)=k;

}滿意請採納。

c語言輸入10個整數,將其中最小的數和第乙個數對換,把最大的數與最後乙個數對換。(用指標)

12樓:匿名使用者

用指標將數對換的自定義函式為:

void swap(int * p, int * q) //p, q是需要對換的兩個數的指標

13樓:匿名使用者

//輸入儲存10個數,找的最小數和最大數,交換void main()

temp=a[0];

a[0]=*min;

*min=temp;

temp=a[9];

a[9]=*max;

max=temp;}

14樓:

供參考……

#include "stdio.h"//

void main(void),i,max,min;

printf("type 10 integers...\n");

for(i=0;i<10;scanf("%d",ndec+i++));

for(i=0;i<10;printf("%d ",ndec[i++]));

printf("\n");

for(max=min=0,i=1;i<10;i++)i=ndec[0];

ndec[0]=ndec[min];

ndec[min]=i;

i=ndec[9];

ndec[9]=ndec[max];

ndec[max]=i;

for(i=0;i<10;printf("%d ",ndec[i++]));

printf("\n");}

c語言題輸入nnlt數找出其中最小的數將

將它與最前面的數交換後輸出這些數.這句話什麼意思 感覺不能理解啊 莫不是英文原題 你按照翻譯之後做的嗎. 未來需努力點綴 樓主你好 原題是要先輸入所有的陣列元素 然後輸出 input 4 2 1 3 4 5 5 4 3 2 1 0output 1 2 3 4 1 4 3 2 5 而你的程式是輸入一個...

c語言程式輸入數求其中正整數的和sum與正整數

兄弟連教育北京總校 include int main printf 和為 d,平均值為 2f sum,sum 5.0 return 0 74 84 84 84 84 00 006666 用c語言編寫乙個程式,輸入5個數,求其和及平均數 include int main printf 和為 d,平均值...

用C語言編寫輸入整數到陣列中,逆序後將其存回陣列並輸出

將前5個數和後5個數映象對調即可。如下 include stdafx.h if the vc 6.0,with this line.include stdio.h int main void int a 10 i,j printf input 10 integers.n for i 0 i 10 s...