当前位置: 代码迷 >> C语言 >> 大家看看我的程序错在那里啊
  详细解决方案

大家看看我的程序错在那里啊

热度:153   发布时间:2005-05-30 20:12:00.0
大家看看我的程序错在那里啊

我想输入五个数,原后倒着输出,比如输入1 2 3 4 5 则输出5 4 3 2 1 #include "stdio.h" void f(int *q,int n) { int *s,i,t;

s=q+n-1; for(i=0;i<n/2;i++) { t=*s; *s=*q; *q=t;

--s;

++q;}

}

void main()

{int a[5],*p=a,i;

for(i=0;i<5;i++)

scanf("%d,",p++);

f(p,5);

for(p=a,i=0;i<5;i++,p++)

printf("%d",*p);

getch();

}

搜索更多相关的解决方案: void  include  

----------------解决方案--------------------------------------------------------
回文呀
----------------解决方案--------------------------------------------------------
我想输入五个数,原后倒着输出,比如输入1 2 3 4 5 则输出5 4 3 2 1

输入0-5  输出5-0
----------------解决方案--------------------------------------------------------
f(p,5)我觉得不对,因为先scanf("%d",p++)后p已不在是数组的第一个数的地址了!
----------------解决方案--------------------------------------------------------

void main()

{int a[5],*p=a,i;

for(i=0;i<5;i++)

scanf("%d,",p++); (1)

f(p,5); (2)

for(p=a,i=0;i<5;i++,p++)

printf("%d",*p);

getch();

} 在main 函数中的我注(1)句中p指针++已指向最后一个数组元素;所以将(2)中的p改成a就正确了


----------------解决方案--------------------------------------------------------
楼主写的好向有点太复杂了,,,应该有比着个简单点的吧,,,其实我是个菜鸟~~~!!!就是问问~~~!!!
----------------解决方案--------------------------------------------------------

楼上的说的对!~那样写实在是套复杂拉!~用递归就很简单啊!~列如下面的 #include<stdio.h>

void io(void) { char ch;

if((ch=getchar())!='\n') { io(); putchar(ch); } }

void main(void) { printf("Input a string end by \'\\n\':\n"); io(); putchar('\n'); }


----------------解决方案--------------------------------------------------------
用不着这么复杂吧
----------------解决方案--------------------------------------------------------
晕厥,我怎么写不出来呢?
----------------解决方案--------------------------------------------------------
以下是引用wangyuming在2005-6-1 20:52:21的发言: 用不着这么复杂吧

----------------解决方案--------------------------------------------------------
  相关解决方案