我已經知道可以將0-255的數字存儲在char數據類型中。所以,我想下面的代碼:將整數存儲在字符數組中並添加
#include <stdio.h>
int main()
{
unsigned char num[4];
int sum=0;
int i=0;
printf("Enter Four Digit Number\n");
while(i<4)
{
scanf("%1d",&num[i]);
i++;
}
sum=(int)num[0]+(int)num[1]+(int)num[2]+(int)num[3];
printf("Sum of digits: %d",sum);
return 0;
}
這似乎運行正常,但只要我把下面的代碼在while循環中,i
變化值爲零每次循環重申時間和代碼中斷:
sum=sum+(int)(num[i]); i++;
我用MinGW編譯器使用code :: blocks。
_'是否可以將數字從0-255存儲在char數據類型中'_'uint8_t'可以做到這一點嗎?!? –
這是無符號字符數組,我想;所以2^8 = 256? – Dvorak
您不能使用指向'char'的指針來存儲'%d'格式的結果;它期望一個指向整數的指針。你的'scanf'可能會損壞堆棧中的內存。你的編譯器應該警告你這個。 –