c语言作业》》》》》》》》》》》》

小明最近很用功学习,所以经常忘记吃饭。小明决定给自己放个假去大吃一顿,到了吃饭的地方后,小明陷入了沉思,因为他很纠结不知道吃什么,所以他全都要。小明的食量是无限的并且是个贪心的人,所以他想吃完自己支付范围内所有最贵的饭。他从最贵的饭店开始吃,若剩下的钱不足以吃当前最贵的饭店,则往下寻找较贵的饭店。直到钱财为空或者已经吃不起最便宜的饭了。当然小明是个有原则的人,他绝对不会重复吃已经吃过的餐厅。但是他学完习思考不出来该吃啥了,需要你的帮助 (Hint:小明不做其他选择,只要贵的,即使贵的饭吃的少而便宜的饭能吃的多,他也会选择最贵的)
这是我的代码
#include<stdio.h>
struct cf{char name[20];
float dj;};
main()
{struct cf st[100];struct cf sk;int n,j,i,p;
scanf("%d",&n);p=n;
// if(n>=1&&n<=10000) p=n;
// else return -1;
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%s",st[i].name);
scanf("%f",&st[i].dj);}
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(st[j].dj<st[j+1].dj) {st[j]=sk;st[j]=st[j+1];st[j+1]=sk;}
if(p<st[n-1].dj) printf("chitu");
for(i=0;i<n;i++)
if(p>=st[i].dj) {p=p-st[i].dj;printf("%s\n",st[i].name);}
}

#include<stdio.h>
struct cf {
    char name[20];
    float dj;
};
int main()
{
    struct cf st[100], sk;
    int n,j,i,p;
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        scanf("%s",st[i].name);
        scanf("%f",&st[i].dj);
    }
    for(i=0; i<n-1; i++)
        for(j=0; j<n-1-i; j++)
            if(st[j].dj<st[j+1].dj) {
                sk = st[j];
                st[j]=st[j+1];
                st[j+1]=sk;
            }
    printf("请输入小明的钱数: ");
    scanf("%d", &p);
    for(i=0; i<n; i++)
        if(p >= st[i].dj) {
            p = p - st[i].dj;
            printf("%s\n",st[i].name);
        }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-15
先去学学怎么提问追问

输入格式:输入一个p表示小明拥有的钱(1<=n<=10000),在输入一个n表示小明有n(1<=n<=100)种选择,接下来的n行,每一行包含一个字符串表示饭店店名和在该饭店吃饭的价格。字符串长度不超过20。
输出格式:
输出小明能够吃到的饭,如果小明什么都吃不起,则输出“chitu”。
不能运行求大神帮解

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网