C語言二位陣列求每列最小值的行數(出現0要跳過)

2025-02-15 23:25:10 字數 4532 閱讀 9211

1樓:網友

這個解法就是每列取最小值:

解決思路:定義矩陣a:n*m

min:每列最小數,index:每列最小數的行數。

sol[100];

偽**:for i=0 to n-1

for j=0 to m-1

min=100; /最大價錢。

index=0; /預設買不到。

if((min>a[i,j]) a[i,j]!=0))min=a[i,j];

index=i;}

sol[i]=min;

print sol;

2樓:郝在益

加一句語句就行了。

if(a[i][j]==0)

p=-1;continue; /跳出當前for迴圈。繼續下乙個迴圈。

3樓:kirito氵灬

問題描述。週末大購物的時候,超超想從1號超市逛到n號超市,然後把該買的東西(從1到m編號)都用最便宜的**買到。

輸入格式。輸入資料第一行是兩個數n m,表示有n個超市和m個該買的商品。(1<=n<=50 1<=m<=100)

接下來是nxm的矩陣aij,其中第i行第j列表示i號超市中j商品的**(小於100的非負整數),aij=0則表示j商品無法在i超市找到。輸入資料不能保證能買到所有商品。

輸出格式。輸出僅一行,包括m個數b1,b2 ..bm,依次表示第i號商品該在bi號超市中購買。如果買不到的話bi為0。 樣例輸入。

樣例輸出。我就是第5列 中間出現0的不會 全0和全沒0的會 求解答 謝謝!

這是我寫的區域性**。

for(j=0;jmin=a[0][j];

p=0;for(i=1;iif(a[i][j]<=min)

min=a[i][j];

p=i;if(a[i][j]==0)

p=-1;printf("%2d",p+1);

還有一種中間出現0的情況不會。。。

請教c語言高手,關於陣列求最小值和次小值

4樓:網友

#include

#define size 8

void find(int a,int size,int*p1,int*ap1,int*p2,int*ap2);

int ifmin(int a1,int a2);

main()

int a[size]=;

int min,submin,amin,asubmin;

if(size<=1)

printf("there should be more numbers.")

return 0;}

if(submin!=-1)

else printf("all the numbers are the same.");

return 0;

void find(int a,int size,int*p1,int*ap1,int*p2,int*ap2)

int i=1,k,j;

k=ifmin(a[0],a[1]);

while(k==0&&i<=size-2)

i++;k=ifmin(a[0],a[i]);針對數衫擾組前幾殲族個值相等的情況*/

if(k==0)

ap1=a[0]; 對應於所有值都相等氏塌弊的情況*/

p1=0;p2=-1;}

else if(k==-1) /先賦初值*/

p1=0;ap1=a[0];

p2=i;ap2=a[i];}

else*p1=i;

ap1=a[i];

p2=0;ap2=a[0];}

for(j=i+1;j<=size-1;j++)在迴圈中修正*/

if(*ap1>a[j])

ap2=*ap1;

p2=*p1;

ap1=a[j];

p1=j;}

else if(*ap1!=a[j]&&ap2>a[j]) 確保次小值不被多次出現的最小值覆蓋*/

ap2=a[j];

p2=j;}}

int ifmin(int a1,int a2) /判斷值是否相等*/

if(a1==a2)

return 0;

else if(a1return -1;

else return 1;

c語言,求陣列最大最小值

5樓:吉祥二進位

求陣列中的最大值和最小值,一般使用假設法,即假設陣列的第1個元素為最大值,同時也是最小值,然後遍歷陣列,找到最大值和最小值。示例如下:

#include

int main()

int max, min;

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

int max_pos = 0, min_pos = 0;

遍歷陣列,找出陣列a中的最大數和最小數。

for (int inx=0; inx!=sizeof(a) / sizeof(int); inx)

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

return 0;}

6樓:網友

這段程式問題很多。

min的初值是0,除非你輸入負數否則min永遠是零else語句後面的最小值比較也有問題。

改成這樣就ok了。

main()

int i=0,max=0,min=0;

for(i=0;ia[i])

min=a[i];}

7樓:焱淼森鑫磊

最後輸入的那個數已經比較過了,但是還沒有把最後乙個數值賦給max,或者是min.所以導致輸出結果不對。

c語言陣列從鍵盤輸入10個整數存入陣列,找出其中最大和最小值,並輸出。

8樓:滄海雄風

///////////////////簡潔 乙個迴圈 全搞定////////////////////////

max=9,min=0

press any key to continue#include ""

main()}

9樓:_珍惜擁有

將樓上的稍作修改,將for迴圈中的i<=10改成i<=9。

c語言答案輸入10個整數,將他們存入陣列中,查詢輸出陣列的最小值

10樓:網友

用氣泡排序法(書上有**),然後在看下如何定義陣列就好了,自己寫用不聊多久的。

用選擇排序搜尋陣列中的最小值【c語言】

11樓:溜號

形成,取代了四言詩和楚辭的地位。當時的五言詩不限句數,可長可短,後人稱為五言古體詩。與五言古體詩。

12樓:清影星河

這是搜最小值還是排序呀,很模糊。

c語言對整形陣列進行排序,輸出其最小值和次最小值的序號如何做啊???

13樓:網友

c陣列中, 找出最小、最大值你會吧, 其實這個思想跟找最大值是一樣的。

首先, 定義兩個變數a,b用來存最小值和次最小值, 先比較陣列的前兩個元素,把最小的賦值給a,次最小的賦值給b,然後 利用迴圈 把陣列的元素依次與a,b相比,①如果這個值比最小的小,那就把這個最小的重新賦值給a,原來的最小也就變為次最小,②如果這個值只比次最小值 小,那就只把次最小重新賦值,③ 如果這個值比a,b都大,則換下乙個元素繼續比較,直到陣列最後乙個元素為止,自己寫程式吧, 這樣才能學習的更深, 方法已經給你說了。

14樓:網友

首先, 找最大值與找最小值原理上是一樣的。

int findmin(int a, int n)}printf("最小值為:%d, 位置為:%d", m, idx);

return idx;

該程式效率非常高, o[n]即可完成。 不要相信shaoqi08110820的, 他的結果是錯的, 給我分吧。

用c語言將10個實數儲存在乙個陣列中,設計乙個程式輸出這個陣列的最大值和最小值。

15樓:皇家救星

#include

int main()

輸入。min=max=a[0];

假設第乙個數是最小的數,且是最大數。

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

else if(a[i]}printf("max is %f min is %f",max,min);}

16樓:網友

假設陣列是a,有n個元素。

int max = -1;

int min = 10000000;

for (int i = 0;imax)

max = a[i];

if (a[i]min = a[i];

printf ("max is %d min is %d",max,min);

123456各組成不重複的二位數?要明細數,謝謝!

a 6,2 一共可以組成30個各不相同的兩位數。用123456組成數字不重複的三位數,這兩個三位數的差最大是多少?最大的減最小的,最大的差是 數字123456任意組合,但是不重複組合能有多少組?求精確的組數?如果只有一個數 那麼有6種 如果包含兩個數 那麼有30種 如果包含三個數 那麼有120種 如...

要使口45 5的商是二位數口可以填口如果商是三位數口裡可以填口

要使口45除以8的商bai是二位 數du,口裡最大可以填zhi 口45 8 二位數答 口裡dao最大可以填 7 想 版 商要權是二位數,被除數的最高位百位上的數要小於除數8,因此口裡可以填1 2 3 4 5 6或7,最大填7。商是二位數,百位可以是1,2,3,4,商是三位數,百位可以是5,6,7,8...

C一維陣列的陣列名錶示元素的地址那麼二位陣列的陣列名有什麼含義呢

同一維陣列,二維陣列名錶示陣列中第一個元素的地址 二維陣列的每一行是一個一維陣列 二維陣列名就是一個指向一維陣列的指標,也可以說是一個指向指標的指標 第一個元素的地址。所謂的 二維陣列 只不過是 陣列的陣列 陣列的元素型別為陣列 而已 一維陣列的陣列名錶示第一個元素的地址那麼二位陣列的陣列名有什麼含...