不理解,逻辑应该是没有问题的,还是30

P4414 [COCI2006-2007#2] ABC

xiaoxiaogui @ 2024-08-09 00:02:49

#include <stdio.h>  
int main()
{  
    int A, B, C;  
    char order[4]; 
    int temp[3];  
    scanf("%d %d %d", &A, &B, &C);   
    scanf(" %c%c%c", &order[0], &order[1], &order[2]);  
    for (int i = 0; i < 3; i++)
    {  
        switch (order[i])
        {  
            case 'A':  
                temp[i] = A;  
                break;  
            case 'B':  
                temp[i] = B;  
                break;  
            case 'C':  
                temp[i] = C;  
                break;  
        }  
    }  
    printf("%d %d %d\n", temp[0], temp[1], temp[2]);  
    return 0;  
}

by Fresca @ 2024-08-09 00:25:15

@xiaoxiaogui

这三个数字不会按照这样的顺序给你,但它们始终满足条件:A < B < C

你是当作 A,B,C 的顺序来做的


by Terrible @ 2024-08-09 00:25:17

三个整数分别为 A,B,C。这三个数字不会按照这样的顺序给你,但它们始终满足条件:A<B<C

需要给读入内容按从小到大排序推断出三个数是 AB 还是 C

你除了右括号结尾的每行末尾怎么都多两个空格,我怎么觉得是 GPT 生成的?


by Terrible @ 2024-08-09 00:28:18

#include <stdio.h>  
#define swap(xx,yy) do{int t=xx;xx=yy;yy=t;}while(0);//
int main()
{  
    int A, B, C;  
    char order[4]; 
    int temp[3];  
    scanf("%d %d %d", &A, &B, &C);   
    if(B>C)swap(B,C);//
    if(A>B)swap(A,B);//
    if(B>C)swap(B,C);//
    scanf(" %c%c%c", &order[0], &order[1], &order[2]);  
    for (int i = 0; i < 3; i++)
    {  
        switch (order[i])
        {  
            case 'A':  
            temp[i] = A;  
            break;  
            case 'B':  
            temp[i] = B;  
            break;  
            case 'C':  
            temp[i] = C;  
            break;  
        }  
    }  
    printf("%d %d %d\n", temp[0], temp[1], temp[2]);  
    return 0;  
}

by MvemiY @ 2024-08-09 08:06:53

@Terrible 不止右括号,case 后面也是


by xiaoxiaogui @ 2024-08-09 23:26:50

@Terrible 我确实是用了al,我主要不是很理解这个题意,和我只想在这个题目中只用if else写那个判断,但是我不会写,所以问了下al,我觉得这个思路和我相同,所以发了问题。(写代码,真不擅长,小白) 最后,感谢大佬指正!


|