| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 678 人关注过本帖
标题:scanf(" %c",&c);和scanf("%c",&c);在程序中的区别? ...
取消只看楼主 加入收藏
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
结帖率:62.5%
收藏
已结贴  问题点数:20 回复次数:2 
scanf(" %c",&c);和scanf("%c",&c);在程序中的区别?
以下程序实现:有15个数按从小到大的顺序存放在一个数组里,输入一个数,要求用折半查找法找出该数是数组中第几个元素值。如果该数不在数组中,输出“不在表中”。

#include<stdio.h>
void main()
{
    int a[15]={1,3,4,5,6,8,12,23,34,44,45,56,57,58,68};
    int x,i,flag,place,sign,top,bot,mid;
    char c;
    flag=1;
    while(flag)
    {
        printf("input number:");
        scanf("%d",&x);
        sign=0;
        top=0;
        bot=14;
        if(x<a[0]||x>a[14])
            place=-1;
        while(!sign&&top<=bot)
        {
            mid=(top+bot)/2;
            if(x==a[mid])
            {
                place=mid;
                sign=1;
                printf("Has found %d, its position is %d\n",x,place+1);
            }
            else if(x>a[mid])
                top=mid+1;
            else
                bot=mid-1;
        }
        if(place==-1||!sign)
            printf("can not find %d.\n",x);
        printf("Continue ? (Y/N)");
        scanf(" %c",&c);
        if(c=='N'||c=='n')
            flag=0;
    }
}

上面这段程序能正确实现程序功能,但是为什么倒数第五行如果我把scanf(" %c",&c);改成scanf("%c",&c);就不能正常输入c的值呢?
搜索更多相关主题的帖子: include number 元素 
2013-02-24 21:32
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
收藏
得分:0 
回复 4楼 rjsp
这里要避免的回车影响是指前面最开始输入的数字后面的回车是么?
2013-02-25 14:12
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
收藏
得分:0 
回复 5楼 逆风而前
谢谢~讲的很详细,也让我了解到新的消除缓冲区残余信息的方法
2013-02-25 14:13
快速回复:scanf(" %c",&c);和scanf("%c",&c);在程序中的区别? ...
数据加载中...
 
   



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

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