c语言如何将数组作为全局变量
具体是要求出一个“完数”(约数之和等于自己,约数不包括自己),输出这个数并且输出约数。如6=1+2+3;想将约数作为全局变量,这样实际上可以用被调函数返回好几个值。可是有...
具体是要求出一个“完数”(约数之和等于自己,约数不包括自己),输出这个数并且输出约数。如6=1+2+3;想将约数作为全局变量,这样实际上可以用被调函数返回好几个值。可是有问题。问题是
3 D:\Dev-Cpp\Temp\完数.c declaration for parameter "a" but no such parameter #include<stdio.h>
int main()
int a[100];
{int i,y;
int yue(int n);
for(i=1;i<=1000;i++)
{y=yue(i);
if(y==i) printf("%d\n",i);for(i=0;i<=100;i++)printf("a[i]*");}
system("pause");
}
int yue(int n)
{int i,sum=0,j=0,a[100];
for(i=1;i<=n/2;i++)
if(n%i==0){sum=sum+i;a[j++]=i;}
return(sum);
} 展开
3 D:\Dev-Cpp\Temp\完数.c declaration for parameter "a" but no such parameter #include<stdio.h>
int main()
int a[100];
{int i,y;
int yue(int n);
for(i=1;i<=1000;i++)
{y=yue(i);
if(y==i) printf("%d\n",i);for(i=0;i<=100;i++)printf("a[i]*");}
system("pause");
}
int yue(int n)
{int i,sum=0,j=0,a[100];
for(i=1;i<=n/2;i++)
if(n%i==0){sum=sum+i;a[j++]=i;}
return(sum);
} 展开
3个回答
展开全部
在c语言中,全局变量和函数声明及定义并列,也就是说,声明在最外层作用域的变量即为全局变
如在如下程序中
int i;
int main()
{
int i_copy = i;
i = 9;
return 0;
}
int
i就是一个全局变量,故在main函数中可以调用或修改i的值
所以,定义数组也和普通全局变量的方法相同,如
char str[10];
int main()
{
str[0] = 'a';
str[1] = '\0';
return 0;
}
拓展资料
c语言是一门通用计算机编程语言,应用广泛。c语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管c语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的c语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称mcu)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的c语言语法产生差异,由美国国家标准局为c语言制定了一套完整的美国国家标准语法,称为ansi
c,作为c语言最初的标准。目前2011年12月8日,国际标准化组织(iso)和国际电工委员会(iec)发布的c11标准是c语言的第三个官方标准,也是c语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
如在如下程序中
int i;
int main()
{
int i_copy = i;
i = 9;
return 0;
}
int
i就是一个全局变量,故在main函数中可以调用或修改i的值
所以,定义数组也和普通全局变量的方法相同,如
char str[10];
int main()
{
str[0] = 'a';
str[1] = '\0';
return 0;
}
拓展资料
c语言是一门通用计算机编程语言,应用广泛。c语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管c语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的c语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称mcu)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的c语言语法产生差异,由美国国家标准局为c语言制定了一套完整的美国国家标准语法,称为ansi
c,作为c语言最初的标准。目前2011年12月8日,国际标准化组织(iso)和国际电工委员会(iec)发布的c11标准是c语言的第三个官方标准,也是c语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
展开全部
把数组在任何一个函数外定义即可。
所以把int a[100];放到main()函数上面就行了。
所以把int a[100];放到main()函数上面就行了。
更多追问追答
追问
是的,这样就不会有编译错误了(上面纯属失误)。但是却变成了死循环。能帮助一下吗??
追答
int yue(int n)好像没必要在main()函数中定义,程序可以自己调用。
printf("a[i]*")改成printf("%d*",a[i])
我是这样想的,由于每个数的约数的个数不同,所需要printf的a[i]个数也不一样,所以可以选择用一个全局变量int m=0去记录,在函数int yue(int n)中赋值为0。输出循环用只需循环m次。试下看看。
保险起见,还可以先将a[100]数组赋个初值0。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询