C语言彩票问题求解答呀

img


这样的情况应该怎么解决呢?这个问题我不大太懂,学的不太好,希望有人能编写出来我参考一下,谢谢啦!

我的思路是:

1、定义存储总彩票数量的变量,临时循环变量,每次输入的彩票等级变量,三个等级奖金的奖金额,存储三个等级彩票数量的数组;

2、从输入获取总彩票数量N,再在循环中获取N个中奖彩票,并根据中奖等级来计算各等级彩票的数量,以及累加兑奖总额;

3、计算超过规定数量中奖数后的额外奖励奖金;

4、打印兑奖总额。

代码如下:


#include <stdio.h>

int main(void){
    
    int N,i,prize;  //依次定义输入的总彩票数量,临时循环变量,每次输入的几等奖 
    int firstPrize = 1000, secondPrize=500,thirdPrize=200,totalPrize = 0; //依次定义为一等奖,二等奖,三等奖的奖金额,兑奖总额 
    int prizeNums[3]={0}; //依次存储一等奖,二等奖,三等奖的数量 
    
    scanf("%d",&N); //获取总的彩票数量 
    
    //循环读入N个中奖彩票 
    for(i=0;i<N;i++){
        scanf("%d",&prize);  //从输入获取中奖彩票 
        if(prize==1){  //如果是一等奖则一等奖数量+1,然后兑奖总额+1000
            prizeNums[0]++;
            totalPrize+=firstPrize;
        }else if(prize==2){//如果是二等奖则二等奖数量+1,然后兑奖总额+500
            prizeNums[1]++;
            totalPrize+=secondPrize;
        }else if(prize==3){ //如果是三等奖则三等奖数量+1,然后兑奖总额+200
            prizeNums[2]++;
            totalPrize+=thirdPrize;
        }
        
    }
    
    //如果是三等奖每10张,二等奖每6张,一等奖每3张额外奖励相应金钱,则应下面的计算方法,否则用注释的计算方法 
    totalPrize += prizeNums[0]/3*1000+prizeNums[1]/6*500+prizeNums[2]/10*200;
//    if( prizeNums[0]/3>0){
//        totalPrize+=1000;
//    }
//    if( prizeNums[1]/6>0){
//        totalPrize+=500;
//    }
//     if( prizeNums[2]/10>0){
//        totalPrize+=200;
//    } 
    printf("%d",totalPrize); //打印兑奖总额 
    
    return 0;
    
} 

img