| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1016 人关注过本帖
标题:新手,关于输入数字进行选择
只看楼主 加入收藏
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
结帖率:72.22%
收藏
已结贴  问题点数:20 回复次数:1 
新手,关于输入数字进行选择
习题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编辑过]

搜索更多相关主题的帖子: 输入 数字 选择 printf number 
2019-04-09 15:25
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
程序代码:
#include <stdio.h>

int main(void)
{
    const wchar_t* zu[] = { L"char1",L"char2",L"char3",L"char4",L"char4" };

    for(;;)
    {
       printf("choose the number you like between 1 and 5: ");

       unsigned number = 0;
       int r = scanf( "%u", &number );

       if( r == EOF )
           break;
       else if( r==0 || number<1 || number>sizeof(zu)/sizeof(*zu) )
       {
           scanf( "%*[^\n]" );
           puts( "entr the number error" );
       }
       else
           wprintf( L"%u is:%s\n", number, zu[number-1] );
    }
}
2019-04-09 16:00
快速回复:新手,关于输入数字进行选择
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017556 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved