主题:二维数组的传递错误 运行出错!!!
dragonbin
[专家分:0] 发布于 2006-05-19 22:52:00
#include<stdio.h>
a(char** matrix,int m,int n,char *p){
int i,j;
for(i=0;i<m;++i)
for(j=0;j<n;++j){
*(*(matrix+i)+j)=*p;
++p;
}
}
main()
{
char p[12]="sdfsdkljfls";
char b[4][5];
int i,j;
a((char**)b,4,5,p);
for(i=0;i<4;++i)
for(j=0;j<5;++j)
printf("%c ",b[i][j]);
}
回复列表 (共3个回复)
沙发
boxertony [专家分:23030] 发布于 2006-05-20 10:41:00
要问问题应该提供尽可能详细的信息,以方便别人帮你,也节省点别人的时间。
板凳
sWintYeT [专家分:350] 发布于 2006-05-23 10:55:00
#include<stdio.h>
void a(char (* matrix)[5], int m, int n, char *p){//此处已改
int i,j;
for(i = 0; i < m; ++i)
for(j = 0; j < n; ++j){
*(*(matrix + i) + j) = *p;
++p;
}
}
void main()
{
char p[20] = "sdfsdkljfls";//此处已改
char b[4][5];
int i,j;
a(b, 4, 5, p);//此处已改
for(i = 0; i < 4; ++i)
for(j = 0; j < 5; ++j)
printf("%c",b[i][j]);
}
3 楼
中国台湾 [专家分:2140] 发布于 2006-05-26 22:05:00
#include<stdio.h>
#include<stdlib.h>
#define MAX 3 //可以做适当的改变
typedef int array[MAX][MAX]; //关键是这里
void sort(array a)
{
int i, j, n, temp;
for ( i = 0; i < MAX; i++)
{
for ( j = 0 ; j < MAX-1; j++)
for ( n = j+1; n < MAX; n++)
{
if (a[i][n] < a[i][j])
{
temp = a[i][n];
a[i][n] = a[i][j];
a[i][j] = temp;
}
}
}
}
void Input(array a)
{
int i, j;
printf("请输入元素");
for ( i = 0 ; i < MAX; i++)
{
for ( j = 0; j < MAX; j++)
{
scanf("%d",&a[i][j]);
}
}
printf("\n");
}
void Output(const array a)
{
int i, j;
for ( i = 0 ; i < MAX; i++)
{
for ( j = 0; j < MAX; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
}
int main(void)
{
array a;
Input(a);
printf("排序前的元素为:\n");
Output(a);
sort(a);
printf("排序后的元素为:\n");
Output(a);
system("pause");
return 0;
}
我来回复