以下のようなコードでint型で受け取った値をchar型の文字列として表示させたいのですが、うまくいきません。control reaches end of non-void function [-Wreturn-type]のようなwarningが表示されます。制御が非ボイド関数の終了に達した場合とは、どういうことでしょうか?
C
1#include <stdio.h> 2 3char* answer(int val) { 4 val = (char)val; 5 6 if ((0 <= val) && (val <= 5)) { 7 printf("0~5を選択しました。\n"); 8 } 9 else if ((6 <= val) && (val <= 10)) { 10 printf("6~10を選択しました。\n"); 11 } 12 return val; 13} 14 15int main(void) { 16 int value; 17 18 printf("0~10で好きな数字を入力してください\n"); 19 scanf("%d\n", &value); 20 21 printf("%s\n", answer(value)); 22 23 return 0; 24} 25
提示されたソースコードで動作確認を行おうとしたところ、「control reaches end of non-void function」ではなく別なエラーとなってコンパイルに失敗しました。
https://paiza.io/projects/s_KDHgvtKZEq5GNez8bAqg?language=c
回答5件
あなたの回答
tips
プレビュー