注册 登录
编程论坛 C++教室

看看这个题目怎么做 关键是while(scanf("%d",&a)!=EOF)不会用

aiyinsitan 发布于 2010-12-22 22:47, 1139 次点击
只有本站会员才能查看附件,请 登录
我头多晕了
6 回复
#2
d10G2010-12-22 23:02
这题目上不说的挺明白的。ctrl键+z键可以让scanf("%d",&a)返回EOF。很好用的,就像快捷键,两个键一起按,然后再按回车,循环就停止了。
#3
aiyinsitan2010-12-22 23:36
回复 2楼 d10G
我知道  关键是我写的时候出现了很多问题  能够编译成功  但是没结果
#4
aiyinsitan2010-12-22 23:39
绝对不是作业贴,麻烦大家写个给我看一下  小弟感激不尽
#5
aiyinsitan2010-12-23 17:13
麻烦了,真的很急啊
#6
rainbow12010-12-24 13:09
楼主,你可以把程序放上来,有不对的地方别人可以帮你改,不懂的地方可以问。上来就要程序。。。。。呵呵。。。。。。。。。
#7
aiyinsitan2010-12-25 22:12
终于写了
#include "iostream.h"
#include "stdlib.h"
#include "stdio.h"
void f(int *,int );
void main()
{
    int a[100],*p,i;
    i=-1;
    while(scanf("%d",a+i++) !=EOF);
p=a;
    f(p,i);
}
void f(int *p,int n)
{
    int i,j,a[100],b,max=1;
    a[0]=*p;
    for(i=1;i<n;i++)
    {
        for(j=max-1;j>=0;j--)
        {
            if(*(p+i)<=a[j])
            {
                break;
            }
        }
            a[j+1]=*(p+i);
         if(j==max-1)
             max++;
            
        }
    cout<<max<<endl;
}
1