係統粉 > 電腦問答 > 其他問答

已解決c語言數組與指針問題

提問者:倪先生的張小姐  |  瀏覽次  |  提問時間:2017-03-20  |  回答數量:8

c語言數組與指針問題 有一個3×4的矩陣,要求編寫程序找出每一行中最大值並與第一列交換上麵的是題目;請問各位高手為什麼下麵的這個源碼運行不了呢,請各位指點!#include<stdio.h>void main(){int i,j,k;int a[3][4]={1,3,5,7,2,4,6,8,0,3,6,9};int *p;p=a[0];for(i=0;i<3;i++)for(j=0;j<4;j++){if(*(p+i)<*(*(p+i)+j)){k=*(p+i);*(p+i)=*(*(p+i)+j);*(*(p+i)+j)=k;}}for(i=0;i<12;i++,p++){if((p-a[0])%4==0)printf(\"\\n\");printf(\" %d\",*p);}}

已有8條答案
彈指刹那塵煙

彈指刹那塵煙

回答數:42  |  被采納數:105

if(*(p+i)<*(*(p+i)+j))星號太多
2017-03-20 21:16:13
讚 4
沫然愛

沫然愛

回答數:102  |  被采納數:1

謝啦!
哪在請問一下,我應該怎麼樣改進呢?
2017-03-21 00:06:06
讚 10
kingearl_

kingearl_

回答數:0  |  被采納數:52

*(*去掉前麵或後麵一個*
2017-03-21 00:52:04
讚 0
汪智smile

汪智smile

回答數:138  |  被采納數:78

版主,去掉一個*倒是不怎麼滴!
可是我覺得意義就完全變了呀?
裏括號主要是二維數組的列,
整體的話才可以形成一個二位數組,
外麵的去了,還可以當作二維數組指向每個元素的指針來使用,
要是把裏麵的去了,那是什麼了呀?
這個我就不太明白了!
2017-03-21 03:50:38
讚 13
kanae_3960

kanae_3960

回答數:201  |  被采納數:55

p是指向int的指針,前麵最多隻能有一個*
2017-03-21 09:20:15
讚 20
小燕子老燕子3

小燕子老燕子3

回答數:111  |  被采納數:60

*(p+i)是取a的內容
*(*(p+i)+j)是取a[j]的內容
要是刪了其中一個意義就完全變了。
那像這樣的話,我就不能用這個方法做這個題了!
嗬嗬!!
鬱悶啊!!
謝謝了!版主!
2017-03-21 01:24:40
讚 11
intanetseo

intanetseo

回答數:126  |  被采納數:46

a[ i][j]的值應該是*(p+i*4+j)
2017-03-21 05:42:46
讚 12
壯男丶

壯男丶

回答數:149  |  被采納數:99

剛剛又該進了一下,現在可以了!
#include<stdio.h>

void main()
{
int i,j,k;
int a[3][4]={1,3,5,7,2,4,6,8,0,3,6,9};
int (*p)[4];
p=a;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(*(*(p+i))<*(*(p+i)+j))
{
k=*(*(p+i));
*(*(p+i))=*(*(p+i)+j);
*(*(p+i)+j)=k;
}
}
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%d",*(*(p+i)+j));
printf("\n");
}


}
2017-03-21 09:27:50
讚 14
相關問答
最新其他問答
解決方法