鱼C论坛

 找回密码
 立即注册
查看: 3508|回复: 5

C语言函数调用问题

[复制链接]
发表于 2012-11-30 14:26:08 | 显示全部楼层 |阅读模式
4鱼币
用WINTC编写这个程序提示“错误 function.c 65: 调用'insert'的参数太少在 main 函数中”我不知道哪里错了,求解答!谢谢
这个程序是一个学生成绩管理系统,在插入这里出错。即为红色字体标出的地方。

#include "stdio.h"
#define MAXSIZE 6   /*数组最大长度*/

int last=0;
int score[MAXSIZE+1]={0};

void input(int a[]);                          /*为数组元素输入数据*/
void output(int a[]);                         /*为数组元素输出数据*/
int  sum(int a[]);                            /*求总分*/
float average(int a[]);                       /*求平均值*/
int max(int a[]);                             /*求最大值*/
int min(int a[]);                             /*求最小值*/
void insert(int a[],int score);               /*将score插入到数组中,插入的前提是不破坏从小到大的顺序*/
void sort(int a[]);                           /*给数组元素从小到大排序*/

void main()
{
    int choice,flag=1;
    int i,j,s,m;
    float ave;
    clrscr();
    while(flag)
   {
        window(1,1,75,25);    /*前两个数字为窗口的左上角坐标的列和行,
                          后两个数字为窗口的右下角坐标的列和行*/

        system("graftable 936") ;
        clrscr();
        printf("     ****************************学生成绩管理系统************************\n");
        printf("     *                                                                                                        *\n");
        printf("     *  1.输入成绩     2.求总分   3.求平均值       4.求最大     5.求最小        *\n");
        printf("     *  6.打印成绩     7.插入     8.从小到大排序   9.查找                            *\n");
        printf("     *                            0.退出                                                                 *\n");
        printf("     *                                                                                                        *\n");
        printf("     ********************************************************************\n\n");
        printf("                                 \n\n ");
        printf("请输入您的选择:");
        scanf("%d",&choice);
        switch(choice)
        {
            case 1:window(1,9,80,25);clrscr();
               input(score);
               break;
            case 2:window(1,9,80,25);clrscr();
               sum(score);
               getch();
               break;
            case 3:window(1,9,80,25);clrscr();
               average(score);
               getch();
               break;
            case 4:window(1,9,80,25);clrscr();
               max(score);
               getch();
               break;
            case 5:window(1,9,80,25);clrscr();
               min(score);
               getch();
               break;
            case 6:window(1,9,80,25);clrscr();
               output(score);
               getch();
               break;
            case 7:window(1,9,80,25);clrscr();
               insert(score);
               getch();
               break;
            case 8:window(1,9,80,25);clrscr();
               sort(score);
               getch();
               break;

            default:flag=0;
        }
   }

}
void input(int a[])
{
    int i;
    system("garftable 936");
    clrscr();
    for(i=0;i<MAXSIZE;i++)
        {
        printf("请输入第%d个学生的成绩:",i+1);
        scanf("%d",&a[i]);
        }
}
void output(int a[])
{
    int i;
    system("garftable 936");
    clrscr();
    for(i=0;i<MAXSIZE;i++)
        {
        printf("第%d个学生的成绩是:",i+1);
        printf("%d\n",a[i]);
        }
}
int  sum(int a[])
{
    int i,sum=0;
    for(i=0;i<MAXSIZE;i++)
        sum+=a[i];
    printf("总分是%d分",sum);
}
float average(int a[])
{
    int i,sum=0;
    float ave;
    for(i=0;i<MAXSIZE;i++)
        sum+=a[i];
    ave=sum/MAXSIZE;
    printf("平均值是%0.2f分",ave);
}
int max(int a[])
{
    int i;
    int max;
    max=a[0];
    for(i=1;i<=MAXSIZE;i++)
    {
        if(max<a[i])
            max=a[i];
    }
    printf("最大值是%d分",max);
}
int min(int a[])
{
    int i;
    int min;
    min=a[0];
    for(i=1;i<=MAXSIZE;i++)
    {
        if(min>a[i])
            min=a[i];
            break;
    }
    printf("最小值是%d分",min);
}
void insert(int a[],int score)
{   int i,j;
    scanf("%d",&score);
    for(i=0;i<=MAXSIZE;i++)
        if(score<a[i])
            ;
            else
                break;
    for(j=MAXSIZE;j<i;j--)
        a[j]=a[j-1];
    a[i]=score;
    for(i=0;i<=MAXSIZE+1;i++)
    printf("%d",a[i]);
}
void sort(int a[])
{
    int i,j,temp;
    for(i=0;i<MAXSIZE-1;i++)
        for(j=0;j<MAXSIZE-1-i;j++)
            if(a[i]>a[i+1])
            {
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;

            }
    for(i=0;i<MAXSIZE;i++)
        printf("%5d",a[i]);
}

最佳答案

查看完整内容

void insert(int a[],int score); 这里声明insert函数有2个参数。 insert(score); 这里只给了1个参数。所以编译器说你给的参数太少了。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-30 14:26:09 | 显示全部楼层
void insert(int a[],int score);
这里声明insert函数有2个参数。

insert(score);
这里只给了1个参数。所以编译器说你给的参数太少了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-30 18:04:47 | 显示全部楼层
求帮忙:dizzy:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-30 18:33:39 | 显示全部楼层
支持 ,,,,,,加油啊啊        :lol:lol:lol:lol
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-30 20:09:50 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-30 22:05:42 | 显示全部楼层
斷橋の殘雪 发表于 2012-11-30 20:09
那需要改什么呢?

需要在调用函数的时候填上2个参数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 16:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表