| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖
标题:按照样例,运行后输出数值是对的,提交后得分为0,不知道错在哪里?
只看楼主 加入收藏
d2701
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2023-6-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
按照样例,运行后输出数值是对的,提交后得分为0,不知道错在哪里?
爷爷要过生日了,小明希望给他准备一份生日礼物,预算大约为 m 元。已知有 n 件礼物可以挑选,
第 i 件的价格为 p[i]元。请挑选其中的一件,价钱最好是越接近 m 元越好,如果有两个礼物同样接
近 m 元,挑选贵的那件。请输出最终礼物的价格。
【输入格式】
输入文件 gift.in
输入第一行为正整数 m 和 n,m<=1000,n<=1000
第二行为 n 个正整数代表每个礼物的价格,均不超过 1000
【输出格式】
输出文件 gift.out
输出一个正整数
【输入输出样例 1】
gift.in     200 3
        100 300 310
gift.out 300
【输入输出样例 1 说明】对于 200 元目标价格,100 元和 300 元同样接近 200 元,选较贵的 300元
【输入输出样例 2】
gift.in     100 5
        90 80 70 102 99
gift.out 99
【数据规模与约定】
对于 50%数据,n<=100
对于 100%数据,n<=1000

#include<bits/stdc++.h>
using namespace std;
    int abs(int y){
    if(y>0) return y;
    else return -y;
}
int main(){
    freopen("gift.in","r",stdin);
    freopen("gift.out","w",stdout);
    int m,n,p[n],min=1000,max=0;
    cin>>m>>n;
    for(int i=0;i<n;i++){
        cin>>p[i];   
        if(abs(p[i]-m)<=min){
            min=abs(p[i]-m);
            max=p[i];            
        }
    }
    for(int i=0;i<n;i++)
        if(p[i]>=max&&abs(p[i]-m)==min) max=p[i];   
    cout<<max<<endl;
    return 0;
}



[此贴子已经被作者于2023-6-27 19:36编辑过]

搜索更多相关主题的帖子: 输出 礼物 max int 输入 
2023-06-27 18:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:20 
#include<bits/stdc++.h>
个人认为,即使编译运行都正确,看到这个玩意儿给个零分也不冤枉

    freopen("gift.in","r",stdin);
    freopen("gift.out","w",stdout);
个人认为,即使评测平台用不到stdin/stdout,看到这种小偷小摸的行为给个负分都是正常的

    int m,n,p[n],min=1000,max=0;
    cin>>m>>n;
张三请客吃饭,但暂时不能确定来几个人,于是想到一个绝妙的注意。
他从墙上取下了一个挂钟,跑到饭店对老板说:“我要订餐,人数就是这个挂钟上的小时数”
饭店老板一看,挂钟上是8:15,在本子上记下了:“张三,订餐8人份”
张三抱着挂钟回家了,等到中午,来了11个朋友,于是张三兴奋地把挂钟时间调成11:00。
但饭店却只送来8人份的午餐

我根据题意写了一个,但我没法测试,不能保证正确
程序代码:
#include <iostream>
#include <fstream>
using namespace std;

unsigned delta( unsigned a, unsigned b )
{
    return a<b ? b-a : b-a;
}

int main( void )
{
    std::ifstream fin( "gift.in" );
    std::ofstream fout( "gift.out" );

    unsigned m, n;
    fin >> m >> n;

    unsigned gift=0, delta=m;
    for( unsigned i=0; i!=n; ++i )
    {
        unsigned price;
        fin >> price;

        unsigned price_delta = price<m ? m-price : price-m;
        if( price_delta<delta || (price_delta==delta && price>gift) )
        {
            gift = price;
            delta = price_delta;
        }
    }

    fout << gift;
    return 0;
}


2023-06-28 10:07
快速回复:按照样例,运行后输出数值是对的,提交后得分为0,不知道错在哪里?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021228 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved