| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1214 人关注过本帖
标题:又一道小题目 呵呵 大家帮帮忙
只看楼主 加入收藏
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:15 
又一道小题目 呵呵 大家帮帮忙
比如说在同一行输入两数a和b,当输入a=0时退出循环,但不必输入b怎么实现啊
while(1)
{
scanf("%d %d",&a,&b);
if(a==0)
break;
}这样的话只有输完b才会进行判断,怎样才能不输入b就判断啊 而且a,b要在同一行里
呵呵  谢谢
搜索更多相关主题的帖子: 而且 
2011-01-25 11:31
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
收藏
得分:2 
用多个scanf不行吗

清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2011-01-25 11:59
kidangel666
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:93
专家分:139
注 册:2010-9-15
收藏
得分:2 
while(1)
{
scanf("%d",&a);
if(a==0)
   break;
scanf("%d",&b);
}
2011-01-25 12:23
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:2 
忽悠人是没有用滴
是金子始终会发光滴
怀才不遇只能是一个神话
瓜熟蒂落永远是对滴
2011-01-25 12:32
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
收藏
得分:0 
神马都是浮云。

清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2011-01-25 12:38
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:2 
在第一个scanf()语句后清空数据流

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-01-25 12:43
Amy_huyier
Rank: 4
等 级:业余侠客
帖 子:46
专家分:265
注 册:2011-1-24
收藏
得分:2 
这个应该可以。调试过的。如果有bug,请回复。
程序代码:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 100       //缓冲区的最大值
int GetInt();        //从键盘得到一个整数(从正常输入开始到非法输入结束)

void main()
{
    int a,b,i=0;
    while(1)
    {
        a=GetInt();
        if(a==0)
            break;
        b=GetInt();
    }
}

//从键盘得到一个整数(从正常输入开始到非法输入结束)
int GetInt()
{
    char buffer[MAX];      //存储字符的缓冲区
    int flag=0,tmp;
    int i=0;
    //从屏幕获取字符存到字符串buffer[MAX]中
    do
    {
        tmp=getch();
        if(tmp>='0'&&tmp<='9')
        {
            flag=1;
            buffer[i++]=tmp;
        }
        putchar(tmp);    //输出用户敲入的字符
        if(tmp=='\r')
            putchar('\n');   //对回车进行特殊处理,追加输入换行
    }
    while(tmp>='0'&&tmp<='9'&&i<MAX-1||flag==0);
    buffer[i]='\0';
    //将字符串转换成整数并返回
    return atoi(buffer);
}
2011-01-25 13:58
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:2 
a=1;先初始化赋值
while(scanf(%d %d,&a,&b)&&a)
{
    ......
}
这样不就行吗

小代码,大智慧
2011-01-25 14:10
Amy_huyier
Rank: 4
等 级:业余侠客
帖 子:46
专家分:265
注 册:2011-1-24
收藏
得分:0 
以下是引用点线面在2011-1-25 14:10:57的发言:

a=1;先初始化赋值
while(scanf(%d %d,&a,&b)&&a)
{
    ......
}
这样不就行吗


好像不行吧。比如输入 0 2。只有当回车了才会退出。所以,输入完a 时还是要输入b的值。
感觉不应该用scanf()吧。因为scanf只有当用户敲下回车键时,才会把输入的值送到缓冲区的。
2011-01-25 14:38
cxycctv123
Rank: 2
等 级:论坛游民
帖 子:8
专家分:19
注 册:2010-11-22
收藏
得分:2 
三楼正解
2011-01-25 14:57
快速回复:又一道小题目 呵呵 大家帮帮忙
数据加载中...
 
   



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

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