长河 发表于 2018-1-22 11:15:33

C语言入门,求解答,谢谢!!!

刚刚看C语言题目的时候遇到一个问题,请各位大大帮我解答一下。题目如下:
编写程序,找出用户输入的一串数中的最大数。程序需要提示用户一个一个地输入数。当用户输入0或负数时,程序必须显示出已输入的最大非负数:
Enter a number:60
Enter a number:38.3
Enter a number:4.89
Enter a number:100.62
Enter a number:75.2295
Enter a number:0
The largest number entered was 100.62
注意,输入的数不一定是整数!!!!

下面是我写的代码:
#include <stdio.h>;

int main()
{
        float cmd, max = 0.00f;
       
        for(; ;) {
                printf("输入一个数字:");
                scanf("%f", &cmd);
               
                if(cmd <= 0){
                        printf("当前最大的是:%d"\n,max);
                        break;
                }else{
                        if(cmd > max) max = cmd;
                }
        }
        return 0;
}

为何我的代码运行后输入0,却总显示最大值为0???
谢谢各位!

shuofxz 发表于 2018-1-22 11:54:57

printf("当前最大的是:%d"\n,max);

这里应该是 %f 吧

BngThea 发表于 2018-1-22 12:17:06

scanf中的d改为f并在后面加一句
getchar();

小银锤 发表于 2018-1-22 13:24:33

输出的时候%d改成%f ,貌似并没有什么问题。
运行截图如下:

549444387@qq.co 发表于 2018-1-22 15:35:20

是的 你的max是浮点型 输出的时候却是整型 改一下就行了
页: [1]
查看完整版本: C语言入门,求解答,谢谢!!!