iT邦幫忙

0

C程式問題

  • 分享至 

  • xImage

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出現在最後一行 請問有可能是哪裡出錯呢 感謝各位

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
richardsuma
iT邦大師 1 級 ‧ 2020-11-19 00:13:04

好像括錯位置


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;
}

好的 謝謝您!

3
海綿寶寶
iT邦大神 1 級 ‧ 2020-11-19 08:55:55

https://ithelp.ithome.com.tw/upload/images/20201119/20001787OmZ1At4xl4.png

錯誤訊息是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 「包」起來的,都不算是「一定會執行的敍述」

解決了這個問題
後面還有更多的問題在等著你

非常感謝您!

我要發表回答

立即登入回答