求助,可通过编译,答案正确,不知道问题出在哪里,提交了都是WA

P1046 [NOIP2005 普及组] 陶陶摘苹果

panmianbao @ 2023-11-07 15:31:18

#include<stdio.h>
int main (){
    int a[10]={0};
    int i=0;
    for(i;i<10;i++){
        scanf("%d ",&a[i]);
    }
    printf("\n");
    int sg;//身高 
    scanf("%d",&sg);
    int jsq=0;//计数器 
    for(i=0;i<10;i++){
        if(sg+30>=a[i]){
            jsq++;
        }
    }
    printf("%d",jsq);
return 0;
}

by 无钩七不改名 @ 2023-11-07 15:34:25

你为什么要换行


by 2023gdgz01 @ 2023-11-07 15:52:04

@panmianbao 第 8printf("\n"); 去掉,我猜你是想写 scanf("\n");


by panmianbao @ 2023-11-08 14:17:30

@2023gdgz01 ok了,谢谢帮助


by panmianbao @ 2023-11-08 14:19:29

@无钩七不改名 想说输入完苹果高度后,换行输入手够得到的最大高度。。


by dabsky @ 2023-11-13 21:41:14

@2023gdgz01 我遇到的情况和楼主一样,把printf(“\n”)改成scanf(“\n”)就判定全对了,但这是为什么呢?好不理解,scanf(“\n”)语法上是什么意思?另外如果直接把printf(“\n”)删去的话结果也显示正确,晕


by 2023gdgz01 @ 2023-11-14 12:44:40

@dabsky scanf("\n"); 其实是读取一个换行符,为 C 语言 IO,建议百度一下。


by 2023gdgz01 @ 2023-11-14 12:46:14

@dabsky 评测机是自动忽略末尾空格和文末换行,至于 printf("\n"); 是在文首换行,会判错。


|