首页 > 解决方案 > 输出太多

问题描述

所以我写了一些示例代码,想知道为什么在有不需要的输入后打印结果时会得到多个相同的输出。

有人有想法吗?

#include <stdio.h>

int eingabe, ergebnis;

int quer(int result)
{
  result = eingabe*eingabe;
  return result;
}

int check(void)
{
  if (eingabe > 10000)
  {
    printf("\nDie eingegebene Zahl ist zu groß!\n\n");
    main();
  }
  else if (eingabe < 0)
  {
    printf("\nDie eingegebene Zahl ist zu klein!\n\n");
    main();
  }
}

int main()
{
  printf("Bitte geben Sie eine Zahl von 0-10000 ein: ");
  scanf("%d", &eingabe);
  check();
  ergebnis = quer(eingabe);
  printf("%d² = %d\n", eingabe, ergebnis);
}

输出示例如下所示:

Bitte geben Sie eine Zahl von 0-10000 ein: -3

Die eingegebene Zahl ist zu klein!

Bitte geben Sie eine Zahl von 0-10000 ein: 11111

Die eingegebene Zahl ist zu groß!

Bitte geben Sie eine Zahl von 0-10000 ein: 3
3² = 9
3² = 9
3² = 9

标签: c

解决方案


由于您在 check 函数中调用了 main ,因此它会不断地来回走动。永远不建议调用 main 函数


推荐阅读