新手求组一道C语言的题,弄了好久都没对,望高手能给点提示,谢谢

一梦何年 2011-05-19 06:03:19
题目如下:

编写有两个参数的函数multiple,该函数确定一对整数中的第二个整数是否是第一个整数的整数倍,如果是则返回1,否则返回0。将该函数用在程序中,对输入的一系列整数对进行判断。

我写的代码如下:


#include <stdio.h>
int multiple(int x, int y) {
if(y % x ==0)
return (1);
else
return (0);
}

int main() {
int x, y, flag = 1;
char c;
while(flag) {
printf("input first integer:\n");
scanf("%d",&x);
if(x==0) {
printf("x can't equal 0\n");
continue;
}
printf("input second integer:\n");
scanf("%d",&y);
printf("%d\n",multiple(x,y));
printf("do again press any key, exit press 'q'\n");
c=getchar();
if(c=='q'||c=='Q') {
flag = 0;
break;
}
}
}

本意是,比较完两个数后
会提示是否要继续输入比较,是的话,按任意键继续,否的话按q退出。
可是程序运行时,比较完两个数后,会显示
do again press any key, exit press
input first integer:

望高手指点一下,问题出在哪啊,思考了好久,不得其解
万分感谢
...全文
49 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
一梦何年 2011-05-19
谢谢各位的回答,关于fflush(stdin);
我找资料学一下。
回复
mouse_xie 2011-05-19
你们老师说你用的不对你抽他!
[Quote=引用 4 楼 wudongjay 的回复:]
引用 2 楼 q191201771 的回复:

c=getchar();前加上fflush(stdin)


可是我们现在还没学到使用fflush(stdin)啊
请问还有其他办法吗?
[/Quote]
回复
一梦何年 2011-05-19
[Quote=引用 2 楼 q191201771 的回复:]

c=getchar();前加上fflush(stdin)
[/Quote]

可是我们现在还没学到使用fflush(stdin)啊
请问还有其他办法吗?
回复
KID_coder 2011-05-19
清除缓冲
fflush(stdin);
回复
就想叫yoko 2011-05-19
c=getchar();前加上fflush(stdin)
回复
mouse_xie 2011-05-19
输入数据时有'\n'的,fflush(stdin);
回复
相关推荐
发帖
新手乐园
创建于2007-09-28

3.3w+

社区成员

C/C++ 新手乐园
申请成为版主
帖子事件
创建了帖子
2011-05-19 06:03
社区公告
暂无公告