|
|
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个参数。所以编译器说你给的参数太少了。
|