向C语言高手求救

来源:百度知道 编辑:UC知道 时间:2024/05/16 05:27:05
#include<stdio.h>
void mian()
{
void fun(int a[]);
int a[100],i;
fun(a);
for(i=0;i<10;i++)
{
printf("%4d\n",a[i]);
}
}
void fun(int a[])
{
int i,n=0;
for(i=0;i<10;i++);
{
a[i]=i+1;
n++;
}
}
我写了个最简单的程序,怎么运行不起啊,总是连接出错的.
哦写错了 ,不过我把分号去了还是运行不起的

#include<stdio.h>
define NUM 10 --宏定义便于修改
void mian() --void main()
{
void fun(int a[]); --这个函数是没有返回值的!应该返回一个指针类型!
int a[NUM],i; --用多少开多少空间没必要开100
fun(a);
for(i=0;i<10;i++)
{
printf("%4d\n",a[i]);
}
}
void fun(int a[])
{
int i,n=0;
for(i=0;i<10;i++);--(这里的分号是不可以有的,否则循环体就不会进行!)
{
a[i]=i+1;
n++;
return a;
}
}
由于之前的函数是没有返回值的,所以在函数结束后对数据进行的操作是无效的!(因为函数在结束后会自动收回存储空间!)
解决办法:1,函数返回值返回数组的首地址!
2,将数组定义为全局变量(这个破坏了程序的结构性,建议不使用!)
由于在这里限于篇幅,不太好再给你改了,呵呵,如果还是想改一下的话,你再联系我吧!

void fun(int a[]) 应该在主函数之前,或者你在主函数之前做个函数的声明

void mian()
应该是
void main() !!!!

fun 函数中for循环中for(i=0;i<10;i++); 这个分号是故意写的么?

老大mian写错了..下次仔细点啊....