系统粉 > 电脑问答 > 其他问答

已解决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
相关问答
最新其他问答
解决方法