c语言pat基础题0906L1092

img


#include<stdio.h>
int main(){
    int N;
    scanf("%d\n",&N);
    int A[N],B[N],C[N];
    for(int i=0;i<N;i++){
        scanf("%d %d %d\n",&A[i],&B[i],&C[i]);
    }
    for(int i=0;i<N;i++){
        if(A[i]*B[i]==C[i]){
            printf("Lv Yan\n");
        }else if(A[i]+B[i]==C[i]){
            printf("Tu Dou\n");
        }else{
            printf("zhe du shi sha ya!");
        }
    }
}

我的代码出现问题,本题希望可以得到大家的指导,谢谢你的帮助!

供参考:

#include <stdio.h>
int main()
{
    int T, a, b, c;
    scanf("%d", &T);
    while (T--) {
        scanf("%d%d%d", &a, &b, &c);
        if (a * b == c)
            printf("Lv Yan");
        else if (a + b == c)
            printf("Tu Dou");
        else
            printf("zhe du shi sha ya!");
        if (T)  printf("\n");
    }
    return 0;
}

程序修改如下所示,试下:

#include<stdio.h>
int main()
{
    int A[100],B[100],C[100];
    int N;
    scanf("%d\n",&N);
   
    for(int i=0;i<N;i++){
        scanf("%d %d %d\n",&A[i],&B[i],&C[i]);
    }
    for(int i=0;i<N;i++){
        if(A[i]*B[i]==C[i]){
            printf("Lv Yan\n");
        }else if(A[i]+B[i]==C[i]){
            printf("Tu Dou\n");
        }else{
            printf("zhe du shi sha ya!");
        }
    }
}

根据输入输出的说明,将第8行和第9行的两个scanf()函数里面去掉换行,然后把第16行的printf()语句里面加个换行就可以了。

修改如下:

参考链接:
https://baike.baidu.com/item/scanf/10773316?fr=ge_ala


 
#include<stdio.h>
int main(){

    int N;
    // https://baike.baidu.com/item/scanf/10773316?fr=ge_ala
    scanf("%d",&N);  // 从输入获取一个整数,scanf()里面不需要使用'\n' 

    int A[N],B[N],C[N];
    for(int i=0;i<N;i++){  // 从输入获取整数,scanf()里面不需要使用'\n' 
        scanf("%d %d %d",&A[i],&B[i],&C[i]);
    }

    for(int i=0;i<N;i++){
        if(A[i]*B[i]==C[i]){
            printf("Lv Yan\n");
        }else if(A[i]+B[i]==C[i]){
            printf("Tu Dou\n");
        }else{  // 因为有多组数据,所以打印每个输出后,需要在结尾加个换行 
            printf("zhe du shi sha ya!\n");
        }
    }
}

img

【以下回答由 GPT 生成】

  • 首先,在输入N的时候,不需要加入\n进行换行。改为scanf("%d", &N);即可。
scanf("%d", &N);
  • 其次,在输入A、B、C的时候,也不需要加入\n进行换行。改为scanf("%d %d %d", &A[i], &B[i], &C[i]);即可。
scanf("%d %d %d", &A[i], &B[i], &C[i]);

最终的代码如下:

#include<stdio.h>
int main(){
    int N;
    scanf("%d", &N);
    int A[N], B[N], C[N];
    for(int i=0; i<N; i++){
        scanf("%d %d %d",&A[i],&B[i],&C[i]);
    }
    for(int i=0; i<N; i++){
        if(A[i] * B[i] == C[i]){
            printf("Lv Yan\n");
        }else if(A[i] + B[i] == C[i]){
            printf("Tu Dou\n");
        }else{
            printf("zhe du shi sha ya!");
        }
    }
}

以上就是对代码的优化建议,希望对您有所帮助。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^