主题:函数调用。
x不会飞
[专家分:0] 发布于 2011-03-17 22:03:00
3. 写一个函数实现将一维数组中的元素反序存放。并编写主函数,输入一维数组,调用此函数实现数组元素反序存放,并在主函数中输出。
这是我编的:
#include<stdio.h>
int fan(int a[5])
{
int i,b[5];
b[i]=a[4-i];
return(b[i]);
}
void main()
{
int c[5],i,f[5];
printf("please input 5 numbers:");
for(i=0;i<=4;i++)
{
scanf("%d",&c[i]);
f[i]=fan(c);
}
for(i=0;i<=4;i++)
printf("%d ",f[i]);
printf("\n");
}
各位帮忙看看啊!不知道怎么编,特别是那个函数不知道怎么定义,总感觉有问题。
回复列表 (共6个回复)
沙发
fragileeye [专家分:1990] 发布于 2011-03-17 22:34:00
main函数中的i可不是fan函数中的i啊
int fan(int a[5],int i)
{
return (a[4-i]);
}
lz应该多看看函数这块啊、、尤其注意形参和实参之间的关系,还有涉及到传值与传址的情况额、、lz加油!
板凳
316971451 [专家分:30] 发布于 2011-03-17 22:39:00
楼主为什么要编的那么难啊 我把你的修改了下 看看不错吧 呵呵 运行也没问题 ,而且很好懂啊
#include<stdio.h>
int fan(int a[5])
{
int i,b[5];
for(i=0;i<=4;i++)
{
b[i]=a[4-i];
}
for(i=0;i<=4;i++)
printf("%d ",b[i]);//在子函数里输出就可以
printf("\n");
}
void main()
{
int c[5],i,f[5];
printf("please input 5 numbers:");
for(i=0;i<=4;i++)
{
scanf("%d",&c[i]);
}
fan(c);//注意把子函数放到括号外面。你看你写的。还有不用什么f[i]=fan (C)
}
[em2]
3 楼
316971451 [专家分:30] 发布于 2011-03-17 22:40:00
看楼下的我写的不错吧。。。呵呵
4 楼
x不会飞 [专家分:0] 发布于 2011-03-17 23:24:00
谢谢各位了,我会努力的!
5 楼
dingqian1987 [专家分:10] 发布于 2011-03-18 17:39:00
#include<stdio.h>
#define NUM 5
int fan(int a[NUM])
{
int i,b[NUM];
for(i=0;i<NUM;i++)
{
b[i]=a[4-i];
}
for(i=0;i<NUM;i++)
{
a[i]=b[i];
}
return 0;
}
void main()
{
int c[NUM],i,f[NUM];
printf("please input %d numbers:\n",NUM);
for(i=0;i<NUM;i++)
{
scanf(" %d",&c[i]);
f[i]=c[i];
}
fan(c);
printf("before\n");
for(i=0;i<NUM;i++)
{
printf("%d\t",f[i]);
}
printf("\nafter\n");
for(i=0;i<NUM;i++)
{
printf("%d\t",c[i]);
}
}
6 楼
uplink [专家分:0] 发布于 2011-03-18 23:18:00
http://edu.tenchong.com:9005
我来回复