1. 问题
为什么下面的程序会报错?[Error] label ‘nember’ used but not defined
#include <stdio.h>
void nember()
{
printf("不是素数");
}
void main()
{
// void nember()
//void nember()
//{
// printf("不是素数");
//}
int x,t;
printf("输入一个数");
scanf("%d",&x);
for(int i =0;i<x;i++)
{
if(x/i!=0)
{
goto nember ;
}
}
printf("是素数");
//return 0;
}
2. 回答
goto不是你这么用的;
你这个相当于使调用一个名字叫“nember”的函数;
正常使用goto跳转的都是在同一个函数中的:
另外,你这个报错原因就是因为:
你要跳转到”nember”
但是在main函数中却没有;
所以就会报错;
就像你用到i,却没定义一个道理;
这是正常goto写法:
#include <stdio.h>
int main()
{
int x,t;
printf("输入一个数");
scanf("%d",&x);
for(int i =0;i<x;i++)
{
if(x/i!=0)
{
goto nember ;
}
}
printf("是素数");
nember:
printf("不是素数");
return 0;
}