【发布时间】:2015-11-29 21:40:32
【问题描述】:
我是 C 编程的初学者,我正在尝试创建一个输入数字并找到其中最小的数字并显示它的函数。到目前为止,我这样做了,但它不起作用:
int smallest(){
int tyy;
for(tyy=0; tyy<11;tyy++){
int small;
int numbers;
printf("input numbers");
scanf("%d", &numbers);
int blockloop;
while ((blockloop=getchar()) != EOF && blockloop != '\n');
if (numbers<small){
numbers = small;
printf("\n",numbers);
}
}
return 0;
}
但是这不起作用,无论我输入哪个数字,它都会询问 11 次数字然后返回主功能。我不太确定我所做的是否正确。
编辑(但不打印正确的数字)
int smallest(){
int tyy;
for(tyy=0; tyy<11;tyy++){
int small;
int numbers;
printf("input numbers");
scanf("%d", &numbers);
int blockloop;
while ((blockloop=getchar()) != EOF && blockloop != '\n');
if (numbers<small){
small=numbers;
printf("%d\n",numbers);
}
}
return 0;
}
使用的输入值是 1 到 11;打印结果为 11。 谢谢!
【问题讨论】:
-
第一个提示 -
small的初始值是多少?第二个提示 - 如果numbers小于small,small的 new 值应该是多少? -
printf("\n",numbers);应该生成编译器警告。如果没有,请了解如何提高编译器的警告级别,或获得更好的编译器。 -
那么它应该读取一个vlue,存储它,然后检查下一个是否更小,如果是则替换它? @JohnBode
-
由于您开始使用 C 语言进行编程,如果您在编译时启用警告,您会省去很多麻烦。例如
gcc -Wall -Wextra ....或 Windows 上的等效编译器。当您收到警告时,查找它们,修复它们,然后继续。只有在非常有限和非常罕见的情况下,您可以依赖编译时带有警告的代码(您将在很长一段时间内不会遇到任何警告)。 -
我使用的编译器是 Codeblocks,我的问题中最后编辑的代码编译时出现 0 个警告,0 个错误