c - 正值输入 C

标签 c function recursion input

此函数的思想是要求一个正值,并确保不会使用递归插入一个负值。

然而,当我测试它时,如果我输入的第一个值是负数,而函数工作并且在输入正值之前不允许代码继续,代码仍然打印插入的第一个值,无论它是否满足返回要求。

#include <stdio.h>

float scanval()
{
  float x;
  printf("Insert positive value \n");
  scanf("%f", &x);

  if(x<0){
    printf("Not a valid value \n");
    scanval();
  }

  return x;
}

main()
{
  printf("Value given %f \n", scanval());
}

最佳答案

也许你应该记得保存返回值:

x = scanval()

在函数内部。

关于c - 正值输入 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28415956/

相关文章:

python - 在Python中,如何进行像: partial(adder , 2)(4)这样的部分函数调用?

c++ - 使函数参数成为具有多个参数的函数的错误

python - 如何编写迭代器?

recursion - 方案的简单步进代码

C++ 服务器在 _UTF8_init() on free() 中因 abort() 而崩溃

c - MISRA C : 2004 compliant code 的 printf() 替代方案

c - 消息队列回调

linux - 使用 grep 递归定位所有具有字符串 "a"和字符串 "b"的文件

java - 如何在矩阵中找到从一点到另一点的逃生路线?

clock() 函数无法按预期使用排序函数