當前位置:係統粉 > 電腦問答 > 其他問答 > c語言數組與指針問題

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

2017-03-20 21:16:13
if(*(p+i)<*(*(p+i)+j))星號太多
讚 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

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

小燕子老燕子3

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

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

intanetseo

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

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

壯男丶

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

2017-03-21 09:27:50
剛剛又該進了一下,現在可以了!
#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");
}


}
讚 14
解決方法
版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航