c语言基础:L1-062 幸运彩票

        彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。

输入格式:

        输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。

输出格式:

        对每张彩票,如果它是幸运的,就在一行中输出 You are lucky!;否则输出 Wish you good luck.

输入样例:

2
233008
123456

输出样例:

You are lucky!
Wish you good luck.

 程序源码:

// 引入标准输入输出库,该库包含了例如printf和scanf等基本的输入输出函数。  
#include   
  
// 主函数的开始,C语言程序的执行从这里开始。  
int main() {  
    // 声明一个整型变量N,用来存储彩票号码的数量。  
    int N;  
    // 从标准输入读取一个整数,并将其存储在变量N中。这模拟了用户输入彩票号码数量的操作。  
    // %d是格式说明符,表示要读取一个整数。&N是N的地址,表示将读取的整数存储在N中。  
    scanf("%d", &N);  
  
    // 当N不为0时,执行循环体。这是处理每张彩票的循环。  
    while (N--) {  
        // 消耗掉输入缓冲区中的换行符或其他字符(如果有的话)。这对于接下来的getchar()读取正确的数字是必要的。  
        getchar();  
        // 声明一个包含6个整数的数组num,用来存储每张彩票的六个数字。  
        // 在实际应用中,你可能需要检查数组越界等错误,这里为了简单起见没有添加这些检查。  
        int num[6];  
        // 声明两个整数变量sum1和sum2,用来存储每张彩票的前三位数字之和和后三位数字之和。初始值都设为0。  
        int sum1 = 0, sum2 = 0;  
        // 声明一个整型变量i,用作循环计数器。  
        int i;  
  
        // 读入每张彩票的六个数字      
        for (i = 0; i < 6; i++) {  
            // 读取一个字符,然后减去字符'0',得到对应的整数数字。然后将其存储在数组num的相应位置。  
            num[i] = getchar() - '0';    
        }    
    
        // 计算前三位数字之和和后三位数字之和      
        for (i = 0; i < 3; i++) {  
            // 将数组num的前三个数字加到sum1上。    
            sum1 += num[i];    
            // 将数组num的后三个数字加到sum2上。这里的i+3是因为数组是从0开始索引的,所以后三个数字实际上是数组的第4到第6个元素。    
            sum2 += num[i + 3];    
        }    
    
        // 判断是否幸运并输出结果      
        if (sum1 == sum2) {  // 如果前三个数字的和等于后三个数字的和,那么用户是幸运的。    
            // 输出"You are lucky!"并换行。    
            printf("You are lucky!\n");    
        }    
        else {  // 如果前三个数字的和不等于后三个数字的和,那么用户是不幸运的。    
            // 输出"Wish you good luck."并换行。    
            printf("Wish you good luck.\n");    
        }    
    }    
    
    // 主函数返回0,表示程序正常结束。    
    return 0;    
}

 

你可能感兴趣的:(c,c语言)