| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 885 人关注过本帖
标题:c语言自己的程序怎么只能运行前半段?
只看楼主 加入收藏
折翼断JJ
Rank: 2
等 级:论坛游民
帖 子:7
专家分:19
注 册:2013-4-29
收藏
得分:0 
回复 楼主 a18300766880
op=getchar();存的为输入10个数字之后的换行符。要去掉。
可以使用2次op=getchar();。第2个op就得到了字符A或D
#include<stdio.h>
int main()

{
    int a[10];
    int i,t,j;
    char op;
    printf("enter 10 number:");
    for(i=0;i<10;i++)
       scanf("%d",&a[i]);
    for(j=1;j<=9;j++)
    { for(i=0;i<10-j;i++)
            if(a[i]>a[i+1]){
               t=a[i];
               a[i]=a[i+1];
               a[i+1]=t;
            }
    }
   
    printf("enter A or D:");
   
    op=getchar();
   
    op=getchar();
   
    switch(op){
    case'A':
        for(i=0;i<10;i++)
            printf("%d ",a[i]);
        break;
    case'D':
        for(i=9;i>=0;i--)
            printf("%d ",a[i]);
        break;
    }
   
    printf("\n");
    return 0;
}
当然还有其他的方法。
比如:
while((op=getchar())=='/n')
continue;
去掉换行符。
2013-04-29 15:27
星112
Rank: 5Rank: 5
来 自:山西朔州
等 级:职业侠客
威 望:2
帖 子:94
专家分:342
注 册:2012-6-22
收藏
得分:0 
仔细看看这段话,getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键. 这就是说你没有真正了解getchar的运行机制,在输完数字后不要回车
2013-04-29 18:05
快速回复:c语言自己的程序怎么只能运行前半段?
数据加载中...
 
   



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

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