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

求救:关于数组作为参数在函数间传递的问题

小鸟向前飞 发布于 2008-02-10 19:45, 882 次点击
这个是字符之间比大小,将输入的20个字符存到letters数组中,并把这个数组传递给一个比较大小的函数比较,具体代码:
#include<iostream.h>

void compared(char);  //比较大小的函数,声明

void main()
{
    char letters[20];   //数组声明
    cout<<"输入20个字符:"<<endl;
    for(int i = 0;i<20;i++)   //输入字符
        cin>>letters[i];
    compared(letters[]);   //进行比较
}

void compared(char a[])
{
    int maxIndex,minIndex;
    maxIndex = minIndex = 0;
    for(int j = 0;j<=19;j++)
    {
        if(a[j]>=a[maxIndex])
            maxIndex = j;
        if(a[j]<a[minIndex])
            minIndex = j;
    }
    cout<<"最大字符为:"<<a[maxIndex]<<endl
        <<"最小字符为:"<<a[minIndex]<<endl;
}

编译以后出现这个错误:
Compiling...
字符比大小.cpp
E:\工作空间\字符比大小\字符比大小.cpp(11) : error C2059: syntax error : ']'
执行 cl.exe 时出错.

字符比大小.exe - 1 error(s), 0 warning(s)
我这书上关于这部分写的不是很全,大家帮帮忙~谢谢啦
2 回复
#2
shining1002008-02-10 23:10
//多下去看下书,语法要学好才行,正确的将数组用作函数参数的声明和定义见我修改的程序
#include<iostream.h>

void compared(char a[],int size);  //定义数组做为参数,另一参数为数组的大小

void main()
{
    char letters[5];
    cout<<"输入5个字符:"<<endl;
    for(int i = 0;i<5;i++)
        cin>>letters[i];
    compared(letters,5);   //直接将变量名写入函数中,不要写[]
}

void compared(char a[],int size)
{
    int maxIndex,minIndex;
    maxIndex = minIndex = 0;
    for(int j = 0;j<size;j++)
    {
        if(a[j]>=a[maxIndex])
            maxIndex = j;
        if(a[j]<a[minIndex])
            minIndex = j;
    }
    cout<<"最大字符为:"<<a[maxIndex]<<endl
        <<"最小字符为:"<<a[minIndex]<<endl;
}
#3
小鸟向前飞2008-02-11 18:56
谢谢楼上指教~
1