|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main()
{
int str[10],i,j;
int *p;
for(i=1;i<=9;i++)
{
str[i]=getchar();
}
str[0]=0;
p=&str[10];
for(i=1;i<=9;i++)
{
printf("%d ",*(p+i));
if(i%3==0)printf("\n");
}
return 0;
}
这是我的代码,我想将9个数按3*3的形式输出,但是输出的是一堆乱码,我觉得我的程序逻辑没有问题呀,str【0】=0,将p指向str的地址,打印*(p+i)的值,意思不就是打印p从1开始指向的值吗?但是结果是一堆乱七八糟的数字,有大佬求解吗?
本帖最后由 jackz007 于 2019-9-22 11:38 编辑
指针指向 str 的尾巴是什么意思?必须得指向开头啊!
数组 str 第一个元素强行置 0 不知道几个意思,是不想要第一个键盘的输入?
- #include<stdio.h>
- int main(void)
- {
- int str[10] , * p , i ;
- for(i = 0 ; i < 9 ; i ++) str[i] = getchar() - '0' ;
- p = str ;
- for(i = 0 ; i < 9 ; i ++) {
- if(! (i % 3)) {
- if(i) printf("\n") ;
- printf("\t\t") ;
- } else {
- printf(" ") ;
- }
- printf("%d" , * (p + i)) ;
- }
- }
复制代码
- C:\Bin>x
- 123456789
- 1 2 3
- 4 5 6
- 7 8 9
- C:\Bin>
复制代码
|
|