请大神告诉小弟我子函数那里哪里有有关问题了?多谢
请大神告诉我子函数那里哪里有问题了??????????????谢谢
#include <stdio.h>
void move(int *p)
{int *q,t;
q=p+12;
for(;p<p+25;p++)
{if(*q<*p)
{t=*q;
*q=*p;
*p=t;}}
}
void main()
{int a[5][5],*p,i;
for(i=0;i<5;i++)
scanf("%d %d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
p=&a[0][0];
putchar('\n');
move(p);
for(i=0;i<5;i++)
printf("%d %d %d %d %d\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4]);
}
------解决思路----------------------
#include <stdio.h>
void move(int *p)
{int *q,t;
q=p+12;
for(;p<p+25;p++)
{if(*q<*p)
{t=*q;
*q=*p;
*p=t;}}
}
void main()
{int a[5][5],*p,i;
for(i=0;i<5;i++)
scanf("%d %d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
p=&a[0][0];
putchar('\n');
move(p);
for(i=0;i<5;i++)
printf("%d %d %d %d %d\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4]);
}
------解决思路----------------------
#include <stdio.h>
#include <stdlib.h>
void move(int *p)
{
int *q, t;
q = p + 12;
for (; p < p + 25; p++) { //中间条件变量是叠加增长的,你会死循环的
if (*q < *p) {
t = *q;
*q = *p;
*p = t;
}
}
}
void main()
{
int a[5][5], *p, i;
for (i = 0; i < 5; i++)
scanf("%d %d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3], &a[i][4]);
p = &a[0][0];
putchar('\n');
move(p);
for (i = 0; i < 5; i++)
printf("%d %d %d %d %d\n", a[i][0], a[i][1], a[i][2], a[i][3], a[i][4]);
}