weixin_44488236
草明&草明
采纳率33.3%
2019-03-20 15:20 阅读 3.3k

用C语言实现从键盘输入一组非零整数(以输入零作为输入结束的标志)

图片说明
功能:想通过这个函数实现输入一些数据,但是是以输入0作为输入结束标志的。
问题:运行结果是当输入0时并不会结束循环,而是还可以一直输入数据。
求各路大佬帮忙看看哪里错了?。。

我改了一下:但是运行出来还是错的。。。。。
for(i=0;i<100;i++)
{
scanf("%d",&a[i]);
if(a[i]=='0')
break;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    yuanquanzheng 草香农 2019-03-20 17:39

    输入的是字符0而不是数字0,字符0的ASCII码是0x31 非0

    int getString(char* buff,int bufflen){
    int i=0;
    for(;i<bufflen;i++){
    buff[i] = getchar();
    if(buff[i] == '0'){
    break;
    }
    }
    if(i==bufflen){
    return -1;
    }
    return 0;
    }

    点赞 评论 复制链接分享
  • weixin_44800870 鱼圆儿 2019-03-20 15:41

    for函数外是不是还有个while死循环?

    点赞 评论 复制链接分享
  • baidu_39193877 路从脚下生 2019-03-20 18:53

    把'0'改成数字0,去掉单引号。

    点赞 评论 复制链接分享

相关推荐