关于定义结构体数组
设某组有4个人,填写如下的登记表,除姓名、学号外,还有三科成绩,编程实现对表格的计算,求解出每个人的三科平均成绩,求出四个学生的单科平均,并按平均成绩由高分到低分输出。#...
设某组有4 个人,填写如下的登记表,除姓名、学号外,还有三科成绩,编程实
现对表格的计算,求解出每个人的三科平均成绩,求出四个学生的单科平均,并按平均成绩
由高分到低分输出。
#include <stdlib.h>
#include <stdio.h>
struct stu
{
char name[20];
long number;
float score[4];
} ;
m a i n ( )
{
void input(); / *函数声明* /
void aver();
void order();
void output();
void out_row();
struct stu stud[4]; / * 定义结构体数组* /
float row[3];
i n p u t ( s t u d , 4 ) ; / *依此调用自定义函数* /
a v e r ( s t u d , 4 ) ;
o r d e r ( s t u d , 4 ) ;
o u t p u t ( s t u d , 4 ) ;
o u t _ r o w ( s t u d , 4 ) ;
}
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
void input(arr,n)
struct stu arr[];
int n;
{ int i,j;
char temp[30];
for (i=0;i<n;i++)
{
printf("\nInput Name,Number,English,Mathema,Physic\n");
g e t s ( a r r [ i ] . n a m e ) ;
g e t s ( t e m p ) ;
a r r [ i ] . n u m b e r = a t o l ( t e m p ) ;
f o r ( j = 0 ; j < 3 ; j + + )
{
g e t s ( t e m p ) ;
a r r [ i ] . s c o r e [ j ] = a t o i ( t e m p ) ;
} ;
}
}
/ * * * * * * * * * * * * * * * * * * * * * * * /
void aver(arr,n)
struct stu arr[];
int n;
{
int i,j;
f o r ( i = 0 ; i < n ; i + + )
{
a r r [ i ] . s c o r e [ 3 ] = 0 ;
f o r ( j = 0 ; j < 3 ; j + + )
a r r [ i ] . s c o r e [ 3 ] = a r r [ i ] . s c o r e [ 3 ] + a r r [ i ] . s c o r e [ j ] ;
arr[i].score[3]=arr[i].score[3] /3;
}
}
/ * * * * * * * * * * * * * * * * * * * * * * * /
void order(arr,n)
struct stu arr[];
int n;
{ struct stu temp;
int i,j,x,y;
f o r ( i = 0 ; i < n - 1 ; i + + )
f o r ( j = 0 ; j < n - 1 - i ; j + + )
if (arr[j].score[3]>arr[j+1].score[3])
{ temp=arr[j];
a r r [ j ] = a r r [ j + 1 ] ;
a r r [ j + 1 ] = t e m p ;
}
}
。
。
。
请问以下的 / *依此调用自定义函数* /
是怎么定义的,怎么用的,在程序里都看不出怎么用的。谢谢
struct stu stud[4]; / * 定义结构体数组* /
float row[3];
i n p u t ( s t u d , 4 ) ; / *依此调用自定义函数* /
a v e r ( s t u d , 4 ) ;
o r d e r ( s t u d , 4 ) ;
o u t p u t ( s t u d , 4 ) ;
o u t _ r o w ( s t u d , 4 ) ;
} 展开
现对表格的计算,求解出每个人的三科平均成绩,求出四个学生的单科平均,并按平均成绩
由高分到低分输出。
#include <stdlib.h>
#include <stdio.h>
struct stu
{
char name[20];
long number;
float score[4];
} ;
m a i n ( )
{
void input(); / *函数声明* /
void aver();
void order();
void output();
void out_row();
struct stu stud[4]; / * 定义结构体数组* /
float row[3];
i n p u t ( s t u d , 4 ) ; / *依此调用自定义函数* /
a v e r ( s t u d , 4 ) ;
o r d e r ( s t u d , 4 ) ;
o u t p u t ( s t u d , 4 ) ;
o u t _ r o w ( s t u d , 4 ) ;
}
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
void input(arr,n)
struct stu arr[];
int n;
{ int i,j;
char temp[30];
for (i=0;i<n;i++)
{
printf("\nInput Name,Number,English,Mathema,Physic\n");
g e t s ( a r r [ i ] . n a m e ) ;
g e t s ( t e m p ) ;
a r r [ i ] . n u m b e r = a t o l ( t e m p ) ;
f o r ( j = 0 ; j < 3 ; j + + )
{
g e t s ( t e m p ) ;
a r r [ i ] . s c o r e [ j ] = a t o i ( t e m p ) ;
} ;
}
}
/ * * * * * * * * * * * * * * * * * * * * * * * /
void aver(arr,n)
struct stu arr[];
int n;
{
int i,j;
f o r ( i = 0 ; i < n ; i + + )
{
a r r [ i ] . s c o r e [ 3 ] = 0 ;
f o r ( j = 0 ; j < 3 ; j + + )
a r r [ i ] . s c o r e [ 3 ] = a r r [ i ] . s c o r e [ 3 ] + a r r [ i ] . s c o r e [ j ] ;
arr[i].score[3]=arr[i].score[3] /3;
}
}
/ * * * * * * * * * * * * * * * * * * * * * * * /
void order(arr,n)
struct stu arr[];
int n;
{ struct stu temp;
int i,j,x,y;
f o r ( i = 0 ; i < n - 1 ; i + + )
f o r ( j = 0 ; j < n - 1 - i ; j + + )
if (arr[j].score[3]>arr[j+1].score[3])
{ temp=arr[j];
a r r [ j ] = a r r [ j + 1 ] ;
a r r [ j + 1 ] = t e m p ;
}
}
。
。
。
请问以下的 / *依此调用自定义函数* /
是怎么定义的,怎么用的,在程序里都看不出怎么用的。谢谢
struct stu stud[4]; / * 定义结构体数组* /
float row[3];
i n p u t ( s t u d , 4 ) ; / *依此调用自定义函数* /
a v e r ( s t u d , 4 ) ;
o r d e r ( s t u d , 4 ) ;
o u t p u t ( s t u d , 4 ) ;
o u t _ r o w ( s t u d , 4 ) ;
} 展开
1个回答
展开全部
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
void input(arr,n) /*定义了input(arr,n)函数*/
struct stu arr[];
int n;
{ int i,j;
char temp[30];
for (i=0;i<n;i++)
{
printf("\nInput Name,Number,English,Mathema,Physic\n");
g e t s ( a r r [ i ] . n a m e ) ;
g e t s ( t e m p ) ;
a r r [ i ] . n u m b e r = a t o l ( t e m p ) ;
f o r ( j = 0 ; j < 3 ; j + + )
{
g e t s ( t e m p ) ;
a r r [ i ] . s c o r e [ j ] = a t o i ( t e m p ) ;
} ;
}
}
/ * * * * * * * * * * * * * * * * * * * * * * * /
void aver(arr,n) /*定义了aver(arr,n)函数*/
struct stu arr[];
int n;
{
int i,j;
f o r ( i = 0 ; i < n ; i + + )
{
a r r [ i ] . s c o r e [ 3 ] = 0 ;
f o r ( j = 0 ; j < 3 ; j + + )
a r r [ i ] . s c o r e [ 3 ] = a r r [ i ] . s c o r e [ 3 ] + a r r [ i ] . s c o r e [ j ] ;
arr[i].score[3]=arr[i].score[3] /3;
}
}
/ * * * * * * * * * * * * * * * * * * * * * * * /
void order(arr,n) /*定义了order(arr,n)函数*/
struct stu arr[];
int n;
{ struct stu temp;
int i,j,x,y;
f o r ( i = 0 ; i < n - 1 ; i + + )
f o r ( j = 0 ; j < n - 1 - i ; j + + )
if (arr[j].score[3]>arr[j+1].score[3])
{ temp=arr[j];
a r r [ j ] = a r r [ j + 1 ] ;
a r r [ j + 1 ] = t e m p ;
}
}
这不就是函数定义吗?
另外,类似这种定义
void order(arr,n)
struct stu arr[];
int n;
是很久以前C定义函数的用法,现在已经不这样用了,建议改为:
void order(struct stuarr,int n)
....
还有,主函数中对自定义函数的声明,
void input(); / *函数声明* /
void aver();
void order();
void output();
void out_row();
统统没有带参数,建议改为:
void input(struct stuarr,int n); / *函数声明* /
void aver(struct stuarr,int n);
void order(struct stuarr,int n);
void output(struct stuarr,int n);
void out_row(struct stuarr,int n);
楼主还没有学函数吗?
void input(arr,n) /*定义了input(arr,n)函数*/
struct stu arr[];
int n;
{ int i,j;
char temp[30];
for (i=0;i<n;i++)
{
printf("\nInput Name,Number,English,Mathema,Physic\n");
g e t s ( a r r [ i ] . n a m e ) ;
g e t s ( t e m p ) ;
a r r [ i ] . n u m b e r = a t o l ( t e m p ) ;
f o r ( j = 0 ; j < 3 ; j + + )
{
g e t s ( t e m p ) ;
a r r [ i ] . s c o r e [ j ] = a t o i ( t e m p ) ;
} ;
}
}
/ * * * * * * * * * * * * * * * * * * * * * * * /
void aver(arr,n) /*定义了aver(arr,n)函数*/
struct stu arr[];
int n;
{
int i,j;
f o r ( i = 0 ; i < n ; i + + )
{
a r r [ i ] . s c o r e [ 3 ] = 0 ;
f o r ( j = 0 ; j < 3 ; j + + )
a r r [ i ] . s c o r e [ 3 ] = a r r [ i ] . s c o r e [ 3 ] + a r r [ i ] . s c o r e [ j ] ;
arr[i].score[3]=arr[i].score[3] /3;
}
}
/ * * * * * * * * * * * * * * * * * * * * * * * /
void order(arr,n) /*定义了order(arr,n)函数*/
struct stu arr[];
int n;
{ struct stu temp;
int i,j,x,y;
f o r ( i = 0 ; i < n - 1 ; i + + )
f o r ( j = 0 ; j < n - 1 - i ; j + + )
if (arr[j].score[3]>arr[j+1].score[3])
{ temp=arr[j];
a r r [ j ] = a r r [ j + 1 ] ;
a r r [ j + 1 ] = t e m p ;
}
}
这不就是函数定义吗?
另外,类似这种定义
void order(arr,n)
struct stu arr[];
int n;
是很久以前C定义函数的用法,现在已经不这样用了,建议改为:
void order(struct stuarr,int n)
....
还有,主函数中对自定义函数的声明,
void input(); / *函数声明* /
void aver();
void order();
void output();
void out_row();
统统没有带参数,建议改为:
void input(struct stuarr,int n); / *函数声明* /
void aver(struct stuarr,int n);
void order(struct stuarr,int n);
void output(struct stuarr,int n);
void out_row(struct stuarr,int n);
楼主还没有学函数吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询