我编写了一个小程序,用一个单独的函数返回的素数填充数组。程序编译正常,但当我去运行可执行文件时,我得到上述错误。这是我的源代码。我不确定为什么会发生这种情况。这里的任何人都可以帮我编译并运行以下代码吗?我想知道它是否在我的笔记本电脑上,但我真的没有任何线索。如果这有帮助的话,我正在运行linux mint。
#include <stdio.h>
int prime(int x);
int main()
{
int intergers,index,return_value;
int array[100]={2}; /*intialize array[0] being 2*/
for(index=1;index<100;index=index+1) /*begin array index at array[1]*/
{
for(intergers=3;intergers<102;intergers=intergers+1) /*check for prime numbers starting from 3*/
{
return_value = prime(intergers);
if(return_value==999)
array[index]=-1;
else
array[index]=return_value;
}
}
printf("hello world");
}
int prime(int x)
{
int divisors,count,value;
for(divisors=2;divisors<x;divisors=divisors+1)
{
if(x%divisors==0)
{
value=999;
break;
}
else
{
value=x;
}
}
return value;
}
答案 0 :(得分:0)
以下代码使用以下命令在SuSE SLES 11上编译和链接gcc编译器时没有错误或警告:gcc -Wall -o test test.c
#include <stdio.h>
int prime(int x);
int main()
{
int intergers,index,return_value;
int array[100]={2}; /*intialize array[0] being 2*/
for(index=1;index<100;index=index+1) /*begin array index at array[1]*/
{
for(intergers=3;intergers<102;intergers=intergers+1) /*check for prime numbers starting from 3*/
{
return_value = prime(intergers);
if(return_value==999)
array[index]=-1;
else
array[index]=return_value;
}
}
printf("hello world\n");
return(0); // Added this line to rid compiler: warning: control reaches end of non-void function
}
int prime(int x)
{
int divisors,/* count, */ value;
for(divisors=2;divisors<x;divisors=divisors+1)
{
if(x%divisors==0)
{
value=999;
break;
}
else
{
value=x;
}
}
return value;
}
然后我执行了程序:
> ./test
hello world
代码按预期执行。