c语言 void main () { unsigned short i,j; scanf ("%u,%u",&i,&j); printf("j=%x\ni=%x\n",j,i); }

为什么i输出为0?

第1个回答  2012-10-23
因为%u是读取无符号十进制整数的,也就是说定义i,j为unsigned int i,j时可以使用%u能够正确读取输入。
i,j是无符号短整形,scanf的格式是scanf ("%hu,%hu",&i,&j); u前面的h代表读取短整数,u代表unsigned。
如果是unsigned long i,j,那么可以使用scanf ("%lu,%lu",&i,&j)来读取。l代表读取长整数。本回答被提问者采纳
相似回答