score類型不是整形嗎,為什么可以直接除以10不用強制轉換int取整?
#include <stdio.h>
int main()?
{
? ? int score = 87; //考試分數為87分?
? ? score=(int)score/10;
? ? switch(score)
? ? {
? ? ? ? /*想想以下代碼為什么用這種方式;
? ? ? ? ? 這種方式的好處?*/
? ? ? ? case 10:
? ? ? ? break;
? ? ? ? case 9:
? ? ? ? ? ? printf("等級A");
? ? ? ? ? ? break;
? ? ? ? case 8:
? ? ? ? ? ? printf("等級B");
? ? ? ? ? ? break; ? ? ? ? ? ? ? ?//這里是不是缺點什么? ? ? ? ? ? ?
? ? ? ? case 7:
? ? ? ? break;
? ? ? ? case 6:?
? ? ? ? ? ? printf("等級C");
? ? ? ? ? ? break; ? ? ? ? ? ? ? //這里是不是缺點什么? ?
? ? ? ? default:
? ? ? ? ? ? printf("等級D");
? ? ? ? ? ? break; ? ?
? ? }
? ? return 0;
}
2017-10-27
score本身就是int類型的,87/10原本應該是8.7但由于變量本身為int型所以8后面的.7會被自動舍棄所以不用使用強制轉換,但是如果你的程序是
int a;
float?b;
a=87;
b=(int)(a/10);/*用強制轉換取整,此時b=8.000[a/10沒有括號的話會先強制轉換a為87.000,無法得到取整結果]*/
2017-09-29
這個你能運行出來嗎?我這個不會
2017-09-24
int 不是整形是什么...