ignoring return value of ‘scanf’, declared with attribute warn_unused_result

#include 

int main(int argc, const char * argv[]) {

    int k;
    scanf("%d",&k);
    int arr[k];
    for(int i = 0;i maxSum){
            maxSum = sum;
        }else if(sum < 0){
            sum = 0;
        }
    }
    
    printf("%d\n",maxSum);
    
    return 0;
}

 

pta上写代码提交后会出现ignoring return value of ‘scanf’, declared with attribute warn_unused_result的警告,

并不是错误,但是看起来不爽,

原因是scanf的返回值没有被使用造成的,因为返回值为1时代表输入成功,返回值为0说明输入错误,类型不匹配,比如需要int类型但却输入了个字符串,所以可以根据返回值结果添加错误提示,这样就使用了scanf的返回值,就不会报警告了

修改后的代码如下:

#include 

int main() {

    int k;
    if(scanf("%d",&k) != 1){
        printf("请输入整数!");
    }
    int arr[k];
    for(int i = 0;i maxSum){
            maxSum = sum;
        }else if(sum < 0){
            sum = 0;
        }
    }
    
    printf("%d\n",maxSum);
    
    return 0;
}

 

你可能感兴趣的:(c,PTA,scanf)