我想检查一下,如果输入不是数字,那么它将递归地再次要求输入,直到它收到一个数字。这是我目前的代码。仅供参考:禁止循环播放。
#include <stdio.h>
int input(int *n){
int x;
scanf("%d",&x);
if (!(x>=-32768 && x<=32767)){
printf("not valid, try again.");
return input(n);
}
else{
*n = x;
return 0;
}
}
int main(void)
{
int num1, num2;
int *n = &num1;
int *m = &num2;
input(n);
input(m);
printf("%d %d\n",num1,num2);
return 0;
}
提前thx。
答案 0 :(得分:0)
您可以,但在这种情况下不应使用递归,请检查loop
与
Do{
/* read the number*/
}while(!condition_to_be_valid);
答案 1 :(得分:0)
您的代码在gcc 4.8.4上运行完美,您可以尝试其他编译器,例如gcc
。
答案 2 :(得分:0)
试试这个:
static int num1, num2;
此外,如果您可以发布汇编代码,将会非常有帮助。您可以使用gcc -S