C言語scanfの取り扱い
解決したいこと
scanf関連でつまっています。
二つの整数を読み込み、その2つの積が偶数か奇数か判定するプログラムを作っています。
発生している問題・エラー
出ているエラーメッセージを入力
../Main.c: In function ‘main’:
./Main.c:4:11: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
4 | (void)scanf("%d %d",&a,&b);
| ^~~~~~~~~~~~~~~~~~~~
該当するソースコード
#include <stdio.h>
int main(void){
int a,b;
scanf("%d %d",&a,&b);
if((a*b)%2){
printf("odd\n");
}
else
{
printf("Even\n");
}
return(0);
}
自分で試したこと
自分のPCの環境であるWSL、Ubuntuのgccコンパイラではコンパイルできます。しかしAtCoderのコンパイラでは上記のようにエラーがはかれます。一応 gcc -Wall -Wextraコマンドも試しましたが、それでもコンパイルが通ってしまいます。そこでGoogleに聞いたところこのエラーはscanfの返り値が無視された?とかが関係しているらしいので以下のコードに変更しましたがダメでした。
#include <stdio.h>
int main(void){
int a,b,value;
(void)scanf("%d %d",&a,&b);
if((a*b)%2){
printf("odd\n");
}
else
{
printf("Even\n");
}
return(0);
}