亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于在VS2008上運行出錯的問題

http://img1.sycdn.imooc.com//580f60f20001397a04710211.jpg

#include?<stdio.h>
int?func(int?n){
	int?r;
	if(n<0)
		printf("data?error\n");
	else?if(n==0?||?n==1)
		r=1;
	else
		r=n?*?func(n-1);
	return?r;
}

int?main(){
	int?n;
	int?result=func(n);

	printf("please?input?n\n");
	scanf_s("%d",&n);

	int?result=func(n);
	printf("result=%d\n",result);
}

其實代碼和課程里的一樣,關于這個報錯,有人能幫忙解決一下嗎?謝謝。

正在回答

2 回答

5810a0ae0001dd3b04670535.jpg

直接拷貝的你的代碼,把15行去掉了,在19行聲明 的result 。

這是運行結果。編譯器用的是gcc。

5810a0ae00016ef903920120.jpg


0 回復 有任何疑惑可以回復我~
#1

把心劉 提問者

看來是工具的問題吧,我用gcc也過去了,用VS2008就是不行。。。謝謝
2016-10-27 回復 有任何疑惑可以回復我~
#2

z3phyr 回復 把心劉 提問者

嗯嗯,編譯器的差別吧
2016-10-27 回復 有任何疑惑可以回復我~

把14行改成int n=0;試試看。你定義了n沒賦初值就直接15行開始計算當然會報錯。

0 回復 有任何疑惑可以回復我~
#1

把心劉 提問者

先謝謝你的解答,我之前試過了,后來結果就是不管n輸入幾,結果都是result=1
2016-10-26 回復 有任何疑惑可以回復我~
#2

z3phyr 回復 把心劉 提問者

剛剛在電腦上敲了一遍你的代碼發現問題了,你把 result定義了兩遍,把20行的int去掉,直接用result接受函數的返回值。
2016-10-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于在VS2008上運行出錯的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號