回 帖 发 新 帖 刷新版面

主题:关于C语言中指针的一个题  急

#include <stdio.h>
void main ()
{
    int i,num[5],*p,*p1,temp=0;

    printf("请输入5个数:");
    for (i=0;i<5;i++)
        scanf("%d",&num[i]);

    p=num;
    p1=num+4;

    while (p<p1)
    {
        temp=*p;
        *p=*p1;
        *p1=temp;
        p++;
        p1--;
    }

    for (i=0;i<5;i++)
        printf("%4d",*(p+i));

    printf("\n");
}
谁帮我看下,怎么运行以后不行呢,哪里错了,我怎么都找不到,

回复列表 (共3个回复)

沙发

你的意思是将输入的数字逆序吧?
你真是粗心了!

p=num; <------将指针重新指向数组开始!
 for (i=0;i<5;i++)
        printf("%4d",*(p+i));

板凳

#include <stdio.h>
int main ()   //这里应这样写,C99标准
{
    int i,num[5],*p,*p1,temp=0;

    printf("请输入5个数:");
    for (i=0;i<5;i++)
        scanf("%d",&num[i]);

    p=num;
    p1=num+4;

    while (p<p1)
    {
        temp=*p;
        *p=*p1;
        *p1=temp;
        p++;
        p1--;
    }
    p=num;

    for (i=0;i<5;i++)
        printf("%4d",*(p+i));

    printf("\n");
    getchar();
    return 0;
}

3 楼

路过!学习中!

我来回复

您尚未登录,请登录后再回复。点此登录或注册