关于爱眼日的资料:我想问一个C语言关于指针的题!小题!!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 01:48:53
include <stdio.h>
void main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p=a;
for(;p<a[0]+12;p++)
{ printf("%4d",*p);
if((P-a[0])%4==0)
printf("\n");

}
printf("\n");
}
请问这哪里有问题??

运行了一下,除了 if((P-a[0])%4==0) 这里的 P应该为p之外,没出错。

指针运算好像没有错误。

调试过了,出现三个问题
1. int*p=a;错了,应该是int*p=*a;
2 .这里if((P-a[0])%4==0) ,P是大写,应改成小写的p.你定义的是小写的p,
c语言区别大小写的
3. 判断何时回车应该放在输出之前,因为这样不会出现第一行只有1的情况.
#include <stdio.h>

void main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p=*a;
for(;p<a[0]+12;p++)
{
if((p-a[0])%4==0)
printf("\n");
printf("%4d",*p);
}
printf("\n");
}

1、include 前面加#
2、P改为小写;
3、如果你为了输出好的格式,请将printf("%4d",*p); 放在if((P-a[0])%4==0) printf("\n"); 之后。

这样就没有问题了:
#include <stdio.h>
void main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p=a;
for(;p<a[0]+12;p++)
{
if((p-a[0])%4==0)
printf("\n");
printf("%4d",*p);
}
printf("\n");
}

1、include 前面加#
2、P改为小写;
3、如果你为了输出好的格式,请用cout 语句
4\ 楼上的(int*p=a;错了,应该是int*p=*a;) 错了*a=a[0]=1,而在指针定义是p为指针;
5、同时还要注意所选择的字体一定是英文的
否则中文的符号会引起编译错误

#include <iostream.h>
void main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p=a;
for(;p<a[0]+12;p++)
{
if((p-a[0])%4==0)
cout<<"\n";
cout<<*p<<" ";
}
cout<<endl;
}

f((P-a[0])%4==0)