请教一C语言指针的问题
#include "stdafx.h "
#include "stdio.h "
#define N 3
void chushihua(double (*p) [N])
{int i,j;
for(i=0;i <N;i++)
for(j=0;j <N;j++)
scanf( "%d ",*(p+i)+j);
}
main()
{ double a[N][N];
int i,j;
chushihua(a);
for(i=0;i <N;i++)
{ for(j=0;j <N;j++)
printf( "%f ",a[i][j]);
printf( "\n ");}
return 0;
}
编译都通过了,但输出是一大串不知道的数字,函数的功能就想是用int(*p)[],的形式对二维数组进行赋值,希望懂的人帮我解决一下,在这谢谢了,
[解决办法]
scanf( "%d ",*(p+i)+j);
==》
scanf( "%lf ",*(p+i)+j);
[解决办法]
#include "stdio.h "
#include "stdio.h "
#include <conio.h>
#define N 3
void chushihua(double(*p)[N])
{
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
scanf( "%d ", *(p + i) + j);
}
main()
{
double a[N][N];
int i, j;
chushihua(a);
printf( "\n\n\n " );
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
printf( "the number: %d\n ", a[i][j]);
}
getch();
return 0;
}
重新排了一下,改成这样是正确的了
[解决办法]
劝LZ从入门开始就注意编码规范的问题,代码就像书法、绘画一样,是一门艺术,好的代码给人以美感,增加可读性,下面是我写的例子,当然,绝不是说的的好,只是举一个例子而已,我也在努力写出优秀的代码,这需要日积月累的磨练才行;
#include <stdio.h>
#define ARRSIZE 3
void arrayInit(double (*p)[ARRSIZE]);
int main(void)
{
double array[ARRSIZE][ARRSIZE];
int i,j;
printf( "please input %d num:\n ",ARRSIZE*ARRSIZE);
arrayInit(array);
printf( "the output are:\n ");
for(i=0; i <ARRSIZE; i++)
{
for(j=0; j <ARRSIZE; j++)
printf( "%-10lf ",array[i][j]);
printf( "\n ");
}
return -1;
}
void arrayInit(double (*p)[ARRSIZE])
{
int i,j;
for(i=0; i <ARRSIZE; i++)
for(j=0; j <ARRSIZE; j++)
scanf( "%lf ",&(*(*(p+i)+j)));
return;
}
[解决办法]
crazy2005king的程序我不懂 为什么加#include <conio.h>
又没什么作用
我直接运行下面的程序就好了啊!
#include "stdio.h "
#define N 3
void chushihua(double (*p)[N])
{int i,j;
for(i=0;i <N;i++)
for(j=0;j <N;j++)
{
scanf( "%d ",*(p+i)+j);
printf( "输入的数是:%d\n ",*(*(p+i)+j));
}
}
int main()
{ double a[N][N];
int i,j;
chushihua(a);
for(i=0;i <N;i++)
{ for(j=0;j <N;j++)
printf( "%d ",a[i][j]);
printf( "\n ");}
return 0;
}