机试-求解最大花费金额-C语言

OJ在线编程常见输入输出练习场

理解:如何读取连续输入的不定长数组;

问题:
输入若干商品 x1,x2,x3,x4…
输入最大金额R;
任选三件商品,求最大花费金额。
若不满足,返回-1;

输入样例 1,2,3,4
6
输出 6

输入样例 1,2,3,4
-1
输出 return -1;

#include <stdio.h>
int main(){
    char ch;
    int count=0;                  //遍历指针
    int M[100]={0};               //存储数组
    int sum = 0;                  //局部计算和
    int max_spend = 0;            //最大花费

    do{
        scanf("%d",&M[count++]);
    }while((ch=getchar())!= '\n');// 这里用来判断是否输入了回车
    printf("%d\n",count);

    int R;                        //资金总额
    scanf("%d",&R);
                                  //枚举
    for(int i = 0; i < count; i++)
        for(int j=i+1; j < count; j++)
            for(int k=j+1; k < count; k++){
                sum = M[i]+M[j]+M[k];
                printf("sum = %d M[%d] + M[%d] + M[%d]\n",sum,i,j,k);//打印枚举结果
                if(sum <= R){
                    max_spend = sum > max_spend? sum : max_spend;
                }
            }
    if(max_spend == 0){
       return -1;
    }
    printf("%d",max_spend);
    return 0;

}

may be we will yes
上一篇:梳理ajax


下一篇:POJ1700解题报告