首页 > 用户发贴区 > 编程问题提问区 > (求助)一晚上怎么也解决不了
2008
10-15

(求助)一晚上怎么也解决不了

#include “Stdio.h”
#include “Conio.h”
f(int a[])
{int i,*q;
q=a;
for(i=0;i<10;i++)
{if(i-5==0)
*(q+5)=45;
 else *(q+i)=a[ i];}
}

int main(void)
{int i,*p,a[10];
p=a;
for(i=0;i<10;i++)
scanf(“%d”,p++);
f(a);
p=a;
for(i=0;i<10;i++)
printf(“%d”,p++);
  getch();
  return 0;
}


这个我用了函数以及指针,编译的本意是:


输入10个数字,通过指针变量,将第6个数字更改为45。


例如我输入      1 2 3 4 5 6 7 8 9 0


我希望的结果是1 2 3 4 5 45 7 8 9 0 此段到最后也提示编译成功,没有语法问题,但是不管我输入的十位数字是什么,最后的值是


-72-70-68-66-64-62-60-58-56-54


请大家帮我分析下错在哪里,而这样为什么会是这个结果。


(求助)一晚上怎么也解决不了》有 7 条评论

  1. tx297234 说:

    死在了家门口,最后输出的时候应该是*p++

  2. qlp18 说:

    其实我也不知道怎么做…..

  3. queliuchun 说:

    我也不知道啊!谁快做出来吧!分享一下吧!

  4. Carlin 说:

    祥眭耋斕腔蚚砩岆妦繫ㄛ??硌??

    #include “Stdio.h”
    #include “Conio.h”
    f(int a[],int n)
    {
      a[n]=45;
    }
    int main(void)
    {
    int i,n,a[10];
    for(i=0;i<10;i++)
    scanf(“%d”,&a[i]);
    f(a,n);
    for(i=0;i<10;i++)
    printf(“%d”,a[i]);
      getch();
      return 0;
    }

  5. Perfect 说:

    把你最后一个for循环里面的语句改为

    printf(“%d”,*(p++));

    就行了

  6. 星情飞飞 说:

    同意楼上的

  7. 星情飞飞 说:

    引用指针 所指地址 的变量的值

    必须加

    ”*“

     

留下一个回复