读书人

数组名著为指针反向输出10个数

发布时间: 2013-07-09 09:50:48 作者: rapoo

数组名作为指针反向输出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");
}

读书人网 >C语言

热点推荐