| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 406 人关注过本帖, 1 人收藏
标题:求助:一个小问题。很郁闷,到底哪错了,我觉得没错,可是就是错了。
只看楼主 加入收藏
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:6 
求助:一个小问题。很郁闷,到底哪错了,我觉得没错,可是就是错了。
程序代码:
/*输入10个整数,输入A,从小到大输出,输入D从大到小输出*/
#include<stdio.h>
int main()
{
    int a[10],*p,*q,t;
    char op;
    for(p=a;p<a+10;p++)
        scanf("%d",p);
    for(p=a;p<a+10;p++)
        for(q=p;q<a+10;q++)
            if(*p>*q)
                t=*p,*p=*q,*q=t;
    scanf("%c",&op);
    if(op=='A')
        for(p=a;p<a+10;p++)
            printf("%d ",*p);
    if(op=='D')
        for(p=a+9;p>=0;p--)
            printf("%d ",*p);

    putchar('\n');

    return 0;
}
2014-11-18 22:49
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:20 
程序代码:
#include<stdio.h>
int main()
{
    int a[10],*p,*q,t;
    char op;
    for(p=a;p<a+10;p++)
        scanf("%d",p);
        getchar();
    for(p=a;p<a+10;p++)
        for(q=p;q<a+10;q++)
            if(*p>*q)
                t=*p,*p=*q,*q=t;
    scanf("%c",&op);
   

    if(op=='A')
        for(p=a;p<a+10;p++)
            printf("%d ",*p);
    if(op=='D')
        for(p=a+9;p>=a;p--)
            printf("%d ",*p);

    putchar('\n');

    return 0;
}
2014-11-18 23:12
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
回复 2 楼 soulmate1023
首先,输入之后要清空缓冲,
其次,>0不能作为指针的判断条件。

2014-11-18 23:14
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
收藏
得分:0 
回复 3 楼 soulmate1023
嗯,那个,清空缓存是什么意思。那个为什么要多加一个getchar()??
2014-11-19 05:53
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
收藏
得分:0 
回复 3 楼 soulmate1023
我知道了,如果没有getchar(),那么我的op就是我输入的回车或者空格。程序就直接运行了。

关于清空缓存区这个概念我不是很明白,能和我说说嘛
2014-11-19 06:14
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
回复 5 楼 ouyangshit
其实我这里说是清空缓冲区就是getchar()的意思,但是实际上我这里的说法不准确,清空缓冲区里面的文章可大了,
我都没信心可以给你说清楚,你要是感兴趣可以上网查查,
我知道的是:
fflush(stdin),rewind(stdin),setbuf(stdin,NULL),前两者仅对window有用,后一个则对linux也可以。
总之这里面还有很多知识
2014-11-19 12:54
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
收藏
得分:0 
回复 6 楼 soulmate1023
好叻,谢谢了
2014-11-19 16:45
快速回复:求助:一个小问题。很郁闷,到底哪错了,我觉得没错,可是就是错了。
数据加载中...
 
   



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

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