我对使用c语言进行编码是陌生的,我一直试图将自己的头包裹在无符号整数周围。这是我的代码:
#include <stdio.h>
int main(void)
{
unsigned int hours;
do
{
printf("Number of hours you spend sleeping a day: ");
scanf(" %u", &hours);
}
while(hours < 0);
printf("\nYour number is %u", hours);
}
但是,当我运行代码并使用(-1)时,它不会再次询问该问题,而是打印出(您的电话号码是4294967295)。如果我将unsigned int更改为普通int,则代码可以正常工作。有什么方法可以更改代码以使unsigned int工作?
感谢任何帮助!
无符号整数不能包含负数。它很有用,因为它可以存储完整的32位数字(是常规int的两倍),但不能容纳负数,因此当您尝试read