| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1210 人关注过本帖
标题:为什么我这个程序只能输入两次呢?
只看楼主 加入收藏
刘林夕
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2011-10-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
为什么我这个程序只能输入两次呢?
#include"stdio.h"
main()
{
    int n,a,i,b;
    char c;
    scanf("%d",&n);
    for(i=n;i>0;i--)
    {
        scanf("%c",&c);
        switch(c)
        {
            case'+':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a+b);
                break;
            }
            case'-':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a-b);
                break;
            }
            case'*':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a*b);
                break;
            }
            case'/':
            {
                scanf("%d %d",&a,&b);
                printf("%.2f\n",(a*1.0)/b);
                break;
            }
        }   
    }
}

输入数据如下 为什么到第二次就结束了?
4
+ 1 2
- 1 2
* 1 2
/ 1 2
搜索更多相关主题的帖子: include break 
2011-10-16 17:06
nomify
Rank: 5Rank: 5
等 级:职业侠客
帖 子:79
专家分:366
注 册:2011-10-13
收藏
得分:3 
回车也被读入了。
在scanf("%c",&c);前面加fflush(stdin);
2011-10-16 17:28
刘林夕
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2011-10-14
收藏
得分:0 
回复 2楼 nomify
好像没什么效果哦。不过还是挺感谢的。。。
2011-10-16 19:09
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
回复 3楼 刘林夕
#include "stdio.h"
main()
{
    int n,a,i,b;
    char c;
    scanf("%d",&n);
    for(i=n;i>0;i--)
    {
        printf("i=%d\n",i);
        fflush(stdin);
        scanf("%c",&c);
        switch(c)
        {
            case'+':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a+b);
                break;
            }
            case'-':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a-b);
                break;
            }
            case'*':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a*b);
                break;
            }
            case'/':
            {
                scanf("%d %d",&a,&b);
                printf("%.2f\n",(a*1.0)/b);
                break;
            }
            default:
                printf("wrong c = %c", c);
                break;
        }   
    }
}

总有那身价贱的人给作业贴回复完整的代码
2011-10-16 19:32
C高手
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2011-7-18
收藏
得分:3 
n给一个确定的数字吧
2011-10-16 19:34
刘林夕
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2011-10-14
收藏
得分:0 
http://acm.hdu.
这样设计?为什么错?我实在搞不懂?求教求教
#include "stdio.h"
main()
{
    int n,a,i,b;
    char c;
    scanf("%d",&n);
    for(i=n;i>0;i--)
    {
        fflush(stdin);
        scanf("%c",&c);
        switch(c)
        {
            case'+':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a+b);
                break;
            }
            case'-':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a-b);
                break;
            }
            case'*':
            {
                scanf("%d %d",&a,&b);
                printf("%d\n",a*b);
                break;
            }
            case'/':
            {
                scanf("%d %d",&a,&b);
                printf("%.2f\n",(a*1.0)/b);
                break;
            }
            default:
                break;
        }   
    }
}
2011-10-16 20:38
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
收藏
得分:3 
回复 6楼 刘林夕
你原来的代码
输入:4  回车 + 空格1空格 2 回车 -空格 1空格 2 回车 *空格 1空格。。。
      n=4
 1       c=回车switch不通过第一次循环结束
2           c=+,switch要求输入两个数所以空格跳过a=1,b=2,循环结束
3                           c=回车,switch不通过此次循环结束
4                                c=-,switch结束要求输入两个数a=1,b=2
 4次循环结束程序结束。
2011-10-16 21:35
nomify
Rank: 5Rank: 5
等 级:职业侠客
帖 子:79
专家分:366
注 册:2011-10-13
收藏
得分:0 
回复 6楼 刘林夕
题目完全不同嘛
2011-10-16 23:05
浩子8905
Rank: 2
等 级:论坛游民
帖 子:7
专家分:16
注 册:2011-10-13
收藏
得分:3 
#include<conio.h>
 for(i=n;i>0;i--)
    {
      
        getchar();//添加用来吃掉回车符
        scanf("%c",&c);
        switch(c)
       ...
2011-10-16 23:46
刘林夕
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2011-10-14
收藏
得分:0 
回复 8楼 nomify
求这道题的解题思路。。。
2011-10-17 19:13
快速回复:为什么我这个程序只能输入两次呢?
数据加载中...
 
   



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

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