新手,关于输入数字进行选择
习题6.3 编写一个程序,从一组至少有5个字符串的数组里,输出任意挑选的一个字符串。这是书上的一个练习,其他的因为都很复杂,都是照抄答案,这个比较简单,就试着改写了下,
经历了,复杂而又基础的多个问题后,终于能运行了,但是有一个问题:
输入为小数时,如1.1,就会开始无限循环输出第一个 printf() 在if的条件中加入 number%1 也没有起效果 ,似乎输入确实存储为整数。
之后又把 number 定义为folat 类型 ,但似乎数组[]中只能是整数,程序无法运行。
请问,要如何处理,要求输入 1-5之间的数字,但输入为带小数的情况?
程序代码:
#include <stdio.h> #include <stdbool.h> #include <stddef.h> int main(void) { wchar_t zu[][15]={L"char1",L"char2",L"char3",L"char4",L"char4"} ; unsigned number = 0; while(true) { printf("choose the number you like between 1 and 5: "); scanf("%hhu",&number); if(number%1 == 0 && number>0 && number<=5) printf("%hhu is:%S\n",number,zu[number-1]); else printf("entr the number error\n"); } return 0; }
[此贴子已经被作者于2019-4-9 15:27编辑过]