鱼C论坛

 找回密码
 立即注册
查看: 1694|回复: 19

额。。。怎么说呢,自己给自己出的一道题,结果思路是有,但结果错的帮忙指点,谢了

[复制链接]
发表于 2015-4-28 20:57:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Anny黄 于 2015-4-28 21:00 编辑

<div class="blockcode"><blockquote>#include<stdio.h>
void main()
{
        int a,b,c;
        printf("请输入价钱A,B,B");
        scanf("%d,%d,%d\n",&a,&b,&c);
        if(a>b>c)
        
                printf("全网最低价%d\n",c);
        
        else if(a>c>b)
        
                printf("全网最低价%d\n",b);
        
        else if(b>a>c)
        
                printf("全网最低价%d\n",c);
        
        else if(b>c>a)
        
                printf("全网最低价%d\n",c);
        
        else if(c>b>a)
        
                printf("全网最低价%d\n",a);
        
        else if(c>a>b)
        
                printf("全网最低价%d\n",b);
        
}</blockquote></div><br />



题目是,请各位供应商给出价钱,价低着得单;然后有3个供应商给价钱。让他自动得出价钱。上面代码是我的思路,我知道还有更加简洁的,但是我不知道怎么做,才想到这种愚蠢的办法。可是结果还是错,到底怎么个回事,帮忙指正下,谢谢各位了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-28 21:35:07 | 显示全部楼层
你这个……:sweat:
C语言中scanf()函数的原型是 scanf("<格式说明字符串>",<变量地址>),第一部分是格式说明,不要加\n这种东西,输入后直接回车代表输入结束。
C语言中没有a>b>c这样的判断,应该是a>b&&b>c
最后建议先找本基础的C语言书看看吧,先学语言规范,别急着写代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-28 21:47:25 | 显示全部楼层
shorey 发表于 2015-4-28 21:35
你这个……
C语言中scanf()函数的原型是 scanf("",),第一部分是格式说明,不要加\n这种东西,输 ...

欧!我明白了,很高兴得到指点。多谢指教!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-28 22:55:05 From FishC Mobile | 显示全部楼层
我会一直学下去的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2015-4-29 00:18:17 From FishC Mobile | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-30 22:02:39 | 显示全部楼层
a>b>c,假设a=3,b=1,c=2
那么a>b=1,也就是1>c,所以不行啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-30 23:40:00 | 显示全部楼层
我也是菜鸟,希望有所帮助

#include <iostream>
using namespace std;

#define MIN(a, b) (a) < (b) ? (a) : (b)

int main()
{
    int nFirst, nSecond, nThird;
    cin >> nFirst >> nSecond >> nThird;
    int nResult = MIN(nFirst, MIN(nSecond, nThird));
    cout << "The lowest price is : " << nResult << endl;

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-1 15:21:23 | 显示全部楼层
qlw319 发表于 2015-4-30 23:40
我也是菜鸟,希望有所帮助

#include

额。。。说实话有点看不懂,因为我不懂英语,哈哈!不过我还是会上机运行看看的,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-1 15:22:34 | 显示全部楼层
本帖最后由 Anny黄 于 2015-5-1 15:28 编辑
kissingfire 发表于 2015-4-30 22:02
a>b>c,假设a=3,b=1,c=2
那么a>b=1,也就是1>c,所以不行啊。

我else了所有的可能了哦不过在判断那我写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-1 15:23:36 | 显示全部楼层
shorey 发表于 2015-4-28 21:35
你这个……
C语言中scanf()函数的原型是 scanf("",),第一部分是格式说明,不要加\n这种东西,输 ...

明白了,谢谢指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-1 15:24:22 | 显示全部楼层
myqicq 发表于 2015-4-28 22:55
我会一直学下去的

嗯,我也是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-1 15:30:38 | 显示全部楼层
qlw319 发表于 2015-4-30 23:40
我也是菜鸟,希望有所帮助

#include

运行错误!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-1 17:14:33 | 显示全部楼层
我的C++ 版本
#include <vector>
#include <iostream>
#include <algorithm>
int main()
{
        std::cout << "请连续输入商品价格,结束请输入0:" << std::endl;

        //存储商品价格的数组
        std::vector<int> Goods;

        do
        {
                int Value;
                std::cin >> Value; //读取一个价格
                if (Value == 0)
                {
                        //输入0则停止输入
                        break;
                }
                //不是0则把价格输入到数组中
                Goods.push_back(Value);

        } while (true);

        //排序
        std::sort(Goods.begin(), Goods.end());

        std::cout << "最便宜的价格是: " << Goods[0] << std::endl;


        return 0;
}


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-1 17:21:27 | 显示全部楼层
#include <stdio.h>
int main()
{
        puts("请连续输入商品价格,结束请输入0;");

        int minValue = 0;//用来临时存储当前发现的最便宜的价格
        
        scanf("%d", minValue);
        int Value = minValue;

        while (Value != 0)
        {
                scanf("%d", &Value);

                if (minValue > Value)//发现了更便宜的,则存储起来
                {
                        minValue = Value;
                }
        }
        printf("最便宜的商品是:%d", minValue);

        return 0;
}
C的一个简单版本,

没测试对错,我的电脑上需要设置才能使用scanf
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-1 18:47:34 | 显示全部楼层
建议把所有的“else if ”改为“if”,另外楼主没有考虑三个数相等的情况!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-1 21:54:59 | 显示全部楼层
卧龙超俊 发表于 2015-5-1 18:47
建议把所有的“else if ”改为“if”,另外楼主没有考虑三个数相等的情况!

咦!哎,我怎么没考虑到万一三个价钱都一样的情况呢!为什么else换成if会好点呢?求教!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-1 21:56:49 | 显示全部楼层
凌风破浪 发表于 2015-5-1 17:21
C的一个简单版本,

没测试对错,我的电脑上需要设置才能使用scanf

嗯。。。运行不了,不过还是得谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-1 23:58:56 | 显示全部楼层
。。。。貌似没有if(a>b>c)这种用法的吧。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 00:25:21 | 显示全部楼层

这个是C++版的代码,应该不会运行失败,我之前测试过。保存文件时后缀是.cpp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 09:55:49 | 显示全部楼层
Anny黄 发表于 2015-5-1 21:54
咦!哎,我怎么没考虑到万一三个价钱都一样的情况呢!为什么else换成if会好点呢?求教!

你所列举的是六种互不相干的情况,比如if(x<30).........else if(x<60)表达的意思其实是30<=x<60,而如果写成
else if(20<x<60)岂不是矛盾了,不知道你听明白不?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 00:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表