我想输入五个数,原后倒着输出,比如输入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();
}
----------------解决方案--------------------------------------------------------
回文呀
----------------解决方案--------------------------------------------------------
我想输入五个数,原后倒着输出,比如输入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'); }
----------------解决方案--------------------------------------------------------
用不着这么复杂吧
----------------解决方案--------------------------------------------------------
晕厥,我怎么写不出来呢?
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------