草明&草明 2019-03-20 15:20 采纳率: 66.7%
浏览 4659
已采纳

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

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

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

  • 写回答

3条回答 默认 最新

  • 草香农 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;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 用三极管设计—个共射极放大电路
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示