黑马程序员技术交流社区
标题:
一个C指针的练习的问题?
[打印本页]
作者:
王雪冬
时间:
2014-4-8 06:22
标题:
一个C指针的练习的问题?
本帖最后由 王雪冬 于 2014-4-8 09:32 编辑
执行了下面的代码,先输入10个数字,然后倒序输出,程序如下:
#include<stdio.h>
int main()
{
void inv(int *x,int n);
int i,a[10];
printf("输入10个数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
inv(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void inv(int *x,int n)
{
int t,*i,*j;
i=x;
j=x+n-1;
for(;i<j;i++,j++)
{
t=*i;
*i=*j;
*j=t;
}
}
复制代码
但是没有输出,请问哪里出了?
作者:
沙洲冷
时间:
2014-4-8 08:30
本帖最后由 沙洲冷 于 2014-4-8 09:36 编辑
把inv函数中的for循环改为:for(;i<j;i++,j--)就行了。
作者:
zjw66485542
时间:
2014-4-8 09:01
本帖最后由 zjw66485542 于 2014-4-8 09:03 编辑
#include <stdio.h>
int main()
{
int i=0;
int a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=9;i>=0;i--)
{
printf("%d",a[i]);
}
return 0;
}
复制代码
后面这个for循环 从a[9],循环输出 就倒序了 不用你那么麻烦。。。
你那个后面那个函数完全没有用的 ,
先循环的输入,然后从a[9]开始循环 不断的自减,就循环输出到a[0]了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2