C程序出错,求高手解答···
此程序可运行,但是输入的时候一点就跳出来了,不知怎么回事#include<stdio.h>intcour;intnum[40];floata[40][7];intorde...
此程序可运行,但是输入的时候一点就跳出来了,不知怎么回事
#include<stdio.h>
int cour;
int num[40];
float a[40][7];
int order[40];
main()
{ int i,j;
void input(int num[40],float a[40][7]);
void count(float a[40][7]);
void sort(float a[40][7],int order[40]);
void serch1(int num[40],float a[40][7],int order[40]);
void serch2(int num[40],float a[40][7]);
printf("\n");
}
void input(int num[40],float a[40][7])
{ int i,j;
for(i=0;i<40;i++)
{ printf("\nInput num of student%3d:\n",i+1);
scanf("%8d\n",num[i]);
printf("\nInput score of student:\n");
for(j=0;j<5;j++)
scanf("%8.2f",&a[i][j]);
}
}
void count(float a[40][7])
{ int i,j;
float s;
for(i=0;i<40;i++)
{ s=0;
for(j=0;j<5;j++)
{ s+=a[i][j];
a[i][5]=s/5.0;
a[i][6]=s;
}
}
}
void sort(float a[40][7],int order[40])
{ int i,j,max;
float t;
for(i=1;i<39;i++)
{ max=i;
for(j=0;j<40-i;j++)
if(a[max][6]<a[j][6])
{ max=j;
order[i]=max;
t=a[max][6];
a[max][6]=a[j][6];
a[j][6]=t;
}
}
for(i=0;i<40;i++)
for(j=0;j<7;j++)
printf("\n%8d,%8.2f\n",num[order[i]],a[order[i]][j]);
}
void serch1(int num[40],float a[40][7],int order[40])
{ int i,j,max;
float t;
for(i=0;i<40;i++)
{ max=i;
for(j=i;j<40;j++)
if(a[max][6]<a[j][6])
{ max=j;
order[i]=max;
t=a[max][6];
a[max][6]=a[j][6];
a[j][6]=t;
}
}
printf("Please input a cour:\n");
scanf("%d\n",cour);
if(cour>=1&&cour<=5)
{for(i=0;i<10;i++)
if(a[order[i]][j]>85.0)
printf("\n%8d%8.2f\n",num[order[i]],a[order[i]][j],order[i]);
}
void serch2(int num[40],float a[40][7])
{ int i,j;
printf("The fail:\n");
int input(int num[40],float a[40][7]);
float count(float a[40][7]);
for(i=0;i<40;i++)
for(j=0;j<7;j++)
if(a[i][6]<60.0)
printf("%8d,%8.2f,%d\n",num[i],a[i][j]);
}
} 展开
#include<stdio.h>
int cour;
int num[40];
float a[40][7];
int order[40];
main()
{ int i,j;
void input(int num[40],float a[40][7]);
void count(float a[40][7]);
void sort(float a[40][7],int order[40]);
void serch1(int num[40],float a[40][7],int order[40]);
void serch2(int num[40],float a[40][7]);
printf("\n");
}
void input(int num[40],float a[40][7])
{ int i,j;
for(i=0;i<40;i++)
{ printf("\nInput num of student%3d:\n",i+1);
scanf("%8d\n",num[i]);
printf("\nInput score of student:\n");
for(j=0;j<5;j++)
scanf("%8.2f",&a[i][j]);
}
}
void count(float a[40][7])
{ int i,j;
float s;
for(i=0;i<40;i++)
{ s=0;
for(j=0;j<5;j++)
{ s+=a[i][j];
a[i][5]=s/5.0;
a[i][6]=s;
}
}
}
void sort(float a[40][7],int order[40])
{ int i,j,max;
float t;
for(i=1;i<39;i++)
{ max=i;
for(j=0;j<40-i;j++)
if(a[max][6]<a[j][6])
{ max=j;
order[i]=max;
t=a[max][6];
a[max][6]=a[j][6];
a[j][6]=t;
}
}
for(i=0;i<40;i++)
for(j=0;j<7;j++)
printf("\n%8d,%8.2f\n",num[order[i]],a[order[i]][j]);
}
void serch1(int num[40],float a[40][7],int order[40])
{ int i,j,max;
float t;
for(i=0;i<40;i++)
{ max=i;
for(j=i;j<40;j++)
if(a[max][6]<a[j][6])
{ max=j;
order[i]=max;
t=a[max][6];
a[max][6]=a[j][6];
a[j][6]=t;
}
}
printf("Please input a cour:\n");
scanf("%d\n",cour);
if(cour>=1&&cour<=5)
{for(i=0;i<10;i++)
if(a[order[i]][j]>85.0)
printf("\n%8d%8.2f\n",num[order[i]],a[order[i]][j],order[i]);
}
void serch2(int num[40],float a[40][7])
{ int i,j;
printf("The fail:\n");
int input(int num[40],float a[40][7]);
float count(float a[40][7]);
for(i=0;i<40;i++)
for(j=0;j<7;j++)
if(a[i][6]<60.0)
printf("%8d,%8.2f,%d\n",num[i],a[i][j]);
}
} 展开
3个回答
展开全部
这个main函数,只有printf("\n");会执行到,main函数中上面的几条语句仅仅对下面的几个函数做了一个声明,不会执行到的。
追问
那要怎么改,,是函数调用出问题了么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{ int i,j;
void input(int num[40],float a[40][7]);
void count(float a[40][7]);
void sort(float a[40][7],int order[40]);
void serch1(int num[40],float a[40][7],int order[40]);
void serch2(int num[40],float a[40][7]);
printf("\n");
}
这里只有函数声明和一个输出换行的语句,没直接退就可以了
{ int i,j;
void input(int num[40],float a[40][7]);
void count(float a[40][7]);
void sort(float a[40][7],int order[40]);
void serch1(int num[40],float a[40][7],int order[40]);
void serch2(int num[40],float a[40][7]);
printf("\n");
}
这里只有函数声明和一个输出换行的语句,没直接退就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int cour;
int num[40];
float a[40][7];
int order[40];
void main()
{ int i,j;
void input(int num[40],float a[40][7]);
void count(float a[40][7]);
void sort(float a[40][7],int order[40]);
void serch1(int num[40],float a[40][7],int order[40]);
void serch2(int num[40],float a[40][7]);
//调用
input(num,a);
count(a);
sort(a,order);
printf("\n");
}
修改一下 试试
追问
函数可以调用了,,但是有些功能还是不能显示
应该是我函数写的有点问题吧,我再改改······
追答
好的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询