課程
/后端開發
/C
/C語言入門
提示我可以進入下一節了但顯示的是亂碼
2015-11-11
源自:C語言入門 4-9
正在回答
轉換時數據類型加()
? ?//獲取三位數字num百位上的數字
? ? ? ? hd =(int)(num/100);
? ? ? ? //獲取三位數字num十位上的數字
? ? ? ? td =(int)(num%100/10);
? ? ? ? //獲取三位數字num個位上的數字
? ? ? ? sd =num%10;
? ? ? ? //水仙花數的條件是什么?
? ? ? ? if(num==hd*hd*hd+td*td*td+sd*sd*sd)?
? ? ? ? {
? ? ? ? ? ? printf("水仙花數字:%d\n", num); ? ?
? ? ? ? }
if()內部兩個等號才是判斷 否則是賦值
for(???num=100?;??num<408???;????num++??)
這里應該是判斷小于1000,三位數的范圍應該是100~1000(不包含1000),雖然我們知道到407就沒有水仙花數了,但是也不能直接寫408呀。
?hd?=??????int(num/100)?????;
這里不用轉換數據類型,hd、num本來就是int。int型做除法,得到的值也還是int型。而且數據類型轉換還給寫錯了。是括號包裹int。如:int num1=(int)num;
td?=????????int{(num-hd*100)/10}????????;
這里的花括號又是怎么回事,還有就還是數據轉換問題。
if(????hd*hd*hd+td*td*td+sd*sd*sd=num??????????????)
=是賦值的意思,==才是判斷。
修改后的代碼
#include?<stdio.h> int?main() { ????//定義三位數num,個位數sd,十位數td,百位數hd ????int?num,?sd,?td,?hd; ????//循環所有三位數 ????for(???num=100?;??num<1000;????num++??) ????{ ????????//獲取三位數字num百位上的數字 ????????hd?=num/100; ????????//獲取三位數字num十位上的數字 ????????td?=(num-hd*100)/10; ????????//獲取三位數字num個位上的數字 ????????sd?=num-hd*100-td*10; ????????//水仙花數的條件是什么? ????????if(hd*hd*hd+td*td*td+sd*sd*sd==num)? ????????{ ????????????printf("水仙花數字:%d\n",?num);???? ????????} ????} ????return?0;???? }
#include?<stdio.h> int?main() { ????//定義三位數num,個位數sd,十位數td,百位數hd ????int?num,?sd,?td,?hd; ????//循環所有三位數 ????for(???num=100?;??num<408???;????num++??) ????{ ????????//獲取三位數字num百位上的數字 ????????hd?=??????num/100???; ????????//獲取三位數字num十位上的數字 ????????td?=????????num%100/10???????; ????????//獲取三位數字num個位上的數字 ????????sd?=????????num%10????????; ????????//水仙花數的條件是什么? ????????if(????hd*hd*hd+td*td*td+sd*sd*sd==num??????????????)?//判斷是否相等要用“==”,“=”是賦值 ????????{ ????????????printf("水仙花數字:%d\n",?num);???? ????????} ????} ????return?0;???? }
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答為什么第一種情況不行,第二種可以?
3 回答這是什么情況
2 回答這是什么情況?
2 回答這是什么情況
1 回答VS2010為什么編輯完成之后會出現這種情況
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-01-05
轉換時數據類型加()
2016-01-05
? ?//獲取三位數字num百位上的數字
? ? ? ? hd =(int)(num/100);
? ? ? ? //獲取三位數字num十位上的數字
? ? ? ? td =(int)(num%100/10);
? ? ? ? //獲取三位數字num個位上的數字
? ? ? ? sd =num%10;
? ? ? ? //水仙花數的條件是什么?
? ? ? ? if(num==hd*hd*hd+td*td*td+sd*sd*sd)?
? ? ? ? {
? ? ? ? ? ? printf("水仙花數字:%d\n", num); ? ?
? ? ? ? }
2015-12-10
if()內部兩個等號才是判斷 否則是賦值
2015-11-11
這里應該是判斷小于1000,三位數的范圍應該是100~1000(不包含1000),雖然我們知道到407就沒有水仙花數了,但是也不能直接寫408呀。
這里不用轉換數據類型,hd、num本來就是int。int型做除法,得到的值也還是int型。而且數據類型轉換還給寫錯了。是括號包裹int。如:int num1=(int)num;
這里的花括號又是怎么回事,還有就還是數據轉換問題。
=是賦值的意思,==才是判斷。
修改后的代碼
2015-11-11