int check_range(int input)
{
while (input> 26 || input < 1)
{
printf("The number N is out of range. Please input angin!!\n");
printf("Please input the number N:");
scanf(" %d", &input);
check_range(input);
if (input <= 26 && input >= 1)
{
draw_parallelogtam(input);
draw_diamond(input);
}
return input;
}
}Non-void function does not return a value in all control paths
bug出現在最後一行 請問有可能是哪裡出錯呢 感謝各位
好像括錯位置
int check_range(int input)
{
while (input> 26 || input < 1)
{
printf("The number N is out of range. Please input angin!!\n");
printf("The range is from less than 1 to big than 26.\n");
printf("Please input the number N:");
scanf(" %d", &input);
check_range(input);
}
if (input <= 26 && input >= 1)
{
draw_parallelogtam(input);
draw_diamond(input);
}
return input;
}
錯誤訊息是Non-void function does not return a value in all control paths
原因出在你的int check_range(int input)
這個 function
你在列 17 說明這個 function 會回傳一個 int
但是一直到 function 的結尾(列 29)你都沒有寫 return int
所以才會出現這個錯誤訊息
另外說明一點
列 27 的 return int 不算
因為他不是「一定會執行的敍述」
所有被 while, if 「包」起來的,都不算是「一定會執行的敍述」
解決了這個問題
後面還有更多的問題在等著你