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

一个简单的求最大数的问题,找不出哪里有问题

小鸟向前飞 发布于 2008-01-23 21:01, 2525 次点击
代码部分:
#include<iostream.h>
main()
{
    int a[9];
    int max;
    int b;
    cout<<"输入10个大于零的数:"<<endl;
    for(int i=0;i<=9;i++)
    {
        cin>>b;
        a[i]=b;
    }
    for(int j;j<=9;j++)
    {
        if(max<=a[j])
            max=a[j];
    }
    cout<<max;
}

编译连接的时候没有错误,到运行时可以输入十个数。输入完以后一回车就弹出下面这样的对话框:
只有本站会员才能查看附件,请 登录


[[italic] 本帖最后由 小鸟向前飞 于 2008-1-23 21:03 编辑 [/italic]]
14 回复
#2
linsua2008-01-23 21:09
for(int j;j<=9;j++)
#3
linsua2008-01-23 21:09
int a[9];
#4
linsua2008-01-23 21:11
int max=?????;



         if(max<=a[j])
            max=a[j];
#5
小鸟向前飞2008-01-23 21:44
回复 4# 的帖子
能不能详细说明下
谢谢了
#6
rocketabc2008-01-23 21:50
#include<iostream.h>
int main()
{
    int a[10]={0};
    int max=0;
    int b;
    cout<<"输入10个大于零的数:"<<endl;
    for(int i=0;i<=9;i++)
    {
        cin>>a[i];
       // a[i]=b;
    }

    for(int j=0;j<=9;j++)
    {
        if(max<=a[j])
            max=a[j];
    }
    cout<<max;
        return 0;
}
你定义的数组小了
#7
shining1002008-01-23 23:09
#include<iostream.h>
        
     main()
    {
        int a[10];//你定义的数组a[9]小了,它的范围是a[0]到a[8],只能装8个数
        int max;
        int b;
        cout<<"输入10个大于0的数"<<endl;
        for(int i=0;i<10;i++)
        {
            cin>>b;
            a[i]=b;
        }
        max=a[0];//你的max没有赋值就使用了
        for(int j=1;j<10;j++)//你的j没有赋值就使用了
        {
            if(max<=a[j])
                max=a[j];
        }
        cout<<max;
    }
#8
小鸟向前飞2008-01-24 18:46
回复 7# 的帖子
谢谢大家~
#9
随心2008-01-26 15:30
程序代码:
/*========================================
Must save as *.cpp, or else it is wrong.
Designer:suixin
QQ group: 21035626
Data:1-26-2008 15:30
========================================*/
#include <stdio.h>
#include <stdlib.h>
#define N 3
int max (int x, int y)
{
        return x > y ? x : y;
}

int max (int x, int y, int z)
{
        return max(max(x, y), z);
}

int max (int a, int b, int c, int d)
{
        return max(max(a, b, c), d);
}

int max (int a, int b, int c, int d, int e)
{
        return max(max(a, b, c, d), e);
}

int max (int a[], int len)
{
        int ix = 0, max = a[ix];
        for ( ; ix != len; ++ix)
        {
                if (a[ix] >= max)
                {
                        max = a[ix];
                }   
        }
        return max;
}

int main()
{
        //example1: maxterm in ten numbers
        int a, b, c, d, e, f, g, h, i, j;
        scanf("%d%d%d%d%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f, &g, &h, &i, &j);
        printf("max:%d\n", max (max(a, b, c, d, e), max(f, g, h, i, j)));
        
        //example2: maxterm in one arrary
        int n[N] = {8, 9, 10};
        printf("max:%d\n", max(n, N));
        system("pause");
        return 0;
}
      


[[italic] 本帖最后由 随心 于 2008-1-26 15:33 编辑 [/italic]]
#10
你的嘴角2008-01-26 16:09
int a[9]错了呀、、
#11
SNAKEQX2008-02-02 15:48
随心的代码很好:)
#12
leeco2008-02-02 21:43
回复 9# 的帖子
吃多了吧
#13
雨中飞燕2008-02-03 02:35
9楼的代码吃饱了撑的
#14
yuki2008-02-03 09:46
至于9楼的,我建议您可以这么做。
#include <stdarg.h>
#include <stdio.h>
int max(int nFirst, ...)
{
    int i = nFirst, nMax = nFirst;
    va_list vaMaker;
    va_start(vaMaker, nFirst);
    while(i)
    {
        if(nMax < i)
            nMax = i;
        i = va_arg(vaMaker, int);
    }
    va_end(vaMaker);
    return nMax;
}

int main()
{
   ... // 输入整数到变量a,b,c,d,e,f,g我省略了。
   printf("%d", max(a,b,c,d,e,f,g));
   return 0;
}
#15
hiphoop2008-02-03 21:24
回复 1# 的帖子
程序如下:
//已编译过无误
#include<iostream>
using namespace std;
main()
{
int a[9];
int max;
int b;cout<<"输入10个大于零的数:"<<endl;
for(int i=0;i<=9;i++)
{
 cin>>b;
 a[i]=b;
 }
max=a[0];
for(i=0;i<9;i++)
{   
 if(max<=a[i])
 max=a[i];
}
cout<<max;
}
1