c - 输出太多
问题描述
所以我写了一些示例代码,想知道为什么在有不需要的输入后打印结果时会得到多个相同的输出。
有人有想法吗?
#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
解决方案
由于您在 check 函数中调用了 main ,因此它会不断地来回走动。永远不建议调用 main 函数
推荐阅读
- angular7 - 调试 Angular 代码时无法在 Google Chrome 中查看变量值
- php - 为什么我不能通过 php cURL 抓取远程站点数据?
- django - 如何从 django 中与外键链接的所有 id 中提取所有对象?
- reactjs - 传递路径参数在 URL 调用中返回 object%20Object
- db2 - 使用 PowerHA 的 DS8K 存储配置类型
- database - 在同一个数据库中安装 wordpress 和 laravel,因为我的主机不允许多个数据库
- javascript - 如何在jquery中获取最近的选定下拉值?
- asp.net-core - OHIF 查看器不显示来自我的 .net 核心服务器的 DICOM 图像
- node.js - 当主入口点移动到子文件夹时,Sails (1.2.3) 给出纯文本“未找到”(404),我该如何解决?
- docker - 复制文件 - 在 Dockerfile 旁边 - 不起作用并阻止 docker build