数组名作为指针反向输出10个数
这个程序哪里不对了,得不到我想要的结果啊。。。。
#include <stdio.h>
#define N 10
void main()
{
int a[N],*p;
printf("Enter %d numbers:",N);
for (p=a;p<a+N;p++)
scanf("%d",p);
printf("In reverse order:");
for (p=a+N-1;p>=a;p--);
printf("%d",*p);
printf("\n");
}
[解决办法]
#include <stdio.h>
#define N 10
void main()
{
int a[N],*p;
printf("Enter %d numbers:",N);
for (p=a;p<a+N;p++)
scanf("%d",p);
printf("In reverse order:");
for (p=a+N-1;p - a >=0;p--)//这里多了个分号。。
printf("%d",*p);
printf("\n");
}
[解决办法]
for(i=0;i<=forever;i++);
printf(“I love you”)
你永远不知道我爱你。。。
for循环后直接跟分好 就相当于先循环完,再执行语句
因为分号代表一个语句结束
而for循环本身后面不加分好
加了分好就说明循环体什么都没有
这是初学者最容易犯的错误
[解决办法]
代码格式规范、注释,这才是新手最先需要学习的地方:
#include <stdio.h>
// 反向数字个数
#define N 10
void main()
{
int a[N], *p;
printf("Enter %d numbers:", N);
// 输入N个数字保存到数组a中
for (p = a; p < a + N; p++)
{
scanf("%d", p);
}
printf("In reverse order:");
// 反向输出数组a中的数字
for (p = a + N - 1; p - a >= 0; p--)
{
printf("%d",*p);
}
printf("\n");
}