c语言问题
本帖最后由 cycf 于 2019-3-11 23:00 编辑#include <stdio.h>
void main ()
{
int a={{1,2,3,4},{4,5,6,7,8},{9,10,11,12,13},{14,15,16,17,18}};
int (*p);
int i,j;
p=a;
printf("请输入i和j的\n");
printf("i=");
scanf("%d",&i);
while( i<0||i>2)
{
printf("i=");
scanf("i=%d",&i);
}
printf("j=");
scanf("j=%d",&j);
while( j<0||j>3)
{
printf("j=");
scanf("j=%d",&j);
}
printf("a[%d,%d] = %d\n",i,j,*(*(p+i)+j));
}
哪里出问题了? 你不说出哪里问题,别人怎么知道你要问什么? 本帖最后由 jackz007 于 2019-3-11 23:08 编辑
. . . . . .
int a={{1,2,3,4},{4,5,6,7,8},{9,10,11,12,13},{14,15,16,17,18}}; // 有 2 个全角逗号
. . . . . . 有图 int a={{1,2,3,4},{4,5,6,7,8},{9,10,11,12,13},{14,15,16,17,18}};数组3行4列你这算4行5列吧
#include <stdio.h>
void main ()
{
int a={1,2,3,4,5,6,7,8,9,1,0,1};
int (*p);
int i,j;
p=a;
printf("请输入i和j的\n");
printf("i=");
scanf("%d",&i);
/* while( i>2|| i<0)
{
printf("i=");
scanf("i=%d",&i);
}*/
printf("j=");
scanf("j=%d",&j);
/* while( j>3|| i<0)
{
printf("j=");
scanf("j=%d",&j);
}*/
printf("a[%d,%d] = %d\n",i,j,*(*(p+i)+j));
}
一些错误已经修改 ,又出现错误 问题主要出在数组的定义以及指针与数组的匹配方面:
. . . . . .
int a={{1 , 2 , 3 , 4} , {5 , 6 , 7 , 8} , {9 , 10 , 11 , 12}} ; // a 只能容纳这么多元素,多了少了都会出错
int (* p) ; // 为了能指向a, (* p) 的元素个数是 4
. . . . . . #include <stdio.h>
void main ()
{
int a={{1,2,3,4,8},{4,5,6,7,8},{9,10,11,12,13},{14,15,16,17,18}};
int (*p);
int i,j;
p=a;
printf("请输入i和j\n");
scanf("%d,%d",&i,&j);
while( i<0||i>4)
{
printf("i=");
scanf("%d",&i);
}
while( j<0||j>4)
{
printf("j=");
scanf("%d",&j);
}
printf("a[%d,%d] = %d\n",i,j,*(*(p+i)+j));
}
改了一下 这样可以 清蒸黄花鱼 发表于 2019-3-11 23:50
改了一下 这样可以
我的是哪里错了{:5_103:} 清蒸黄花鱼 发表于 2019-3-11 23:50
改了一下 这样可以
我把你的while 语句复制过去,就没问题了,还是不太清楚我的程序里有什么问题,请指教. 清蒸黄花鱼 发表于 2019-3-11 23:50
改了一下 这样可以
问题已解决 你这个代码是怎么复制的啊?怎么和我的不一样{:5_92:} cycf 发表于 2019-3-12 09:17
你这个代码是怎么复制的啊?怎么和我的不一样
框框里有个大小于符号可以直接放代码 cycf 发表于 2019-3-12 00:12
我把你的while 语句复制过去,就没问题了,还是不太清楚我的程序里有什么问题,请指教.
while的作用是让输入的数不超过数组容纳的数 数组是从0开始算的 二维数组就是a
页:
[1]