C/PTA —— 15.结构体2(课内实践)
7-1 计算职工工资 7-2 计算平均成绩 7-3 找出总分最高的学生 7-4 通讯录的录入与显示
7-1 计算职工工资
# include <stdio.h>
# include <stdlib.h>
typedef struct GZ
{
char name[ 6 ] ;
double j;
double f;
double z;
double s;
} GZ;
int main ( )
{
int n = 0 ;
scanf ( "%d" , & n) ;
GZ gz[ 100 ] ;
for ( int i = 0 ; i < n; i++ )
{
scanf ( "%s %lf %lf %lf" , gz[ i] . name, & gz[ i] . j, & gz[ i] . f, & gz[ i] . z) ;
}
for ( int i = 0 ; i < n; i++ )
{
gz[ i] . s = ( gz[ i] . j + gz[ i] . f) - gz[ i] . z;
printf ( "%s %.2lf" , gz[ i] . name, gz[ i] . s) ;
}
return 0 ;
}
7-2 计算平均成绩
# include <stdio.h>
# include <stdlib.h>
struct student
{
char num[ 20 ] ;
char nam[ 20 ] ;
int g;
} ;
int main ( )
{
struct student st[ 10 ] ;
int n;
int i;
float sum, aver;
scanf ( "%d" , & n) ;
for ( i = 0 ; i < n; i++ )
{
scanf ( "%s %s %d" , & st[ i] . num, & st[ i] . nam, & st[ i] . g) ;
sum += st[ i] . g;
}
aver = sum / n;
printf ( "%.2f\n" , aver) ;
for ( i = 0 ; i < n; i++ )
{
if ( st[ i] . g < aver)
{
printf ( "%s %s\n" , st[ i] . nam, st[ i] . num) ;
}
}
}
7-3 找出总分最高的学生
# include <stdio.h>
# include <stdlib.h>
struct student {
char num[ 6 ] ;
char name[ 11 ] ;
int score1;
int score2;
int score3;
} ;
int main ( )
{
int i, n;
struct student * p;
scanf ( "%d" , & n) ;
p = ( struct student * ) malloc ( sizeof ( struct student ) ) ;
for ( i = 0 ; i < n; i++ )
{
scanf ( "%s %s %d %d %d" , p[ i] . num, p[ i] . name, & p[ i] . score1, & p[ i] . score2, & p[ i] . score3) ;
}
int s[ 20 ] ;
for ( i = 0 ; i < n; i++ )
{
s[ i] = p[ i] . score1 + p[ i] . score2 + p[ i] . score3;
}
int max, j;
max = s[ 0 ] ;
for ( i = 0 ; i < n; i++ )
{
if ( s[ i] >= max)
{
max = s[ i] ;
j = i;
}
}
printf ( "%s %s %d" , p[ j] . name, p[ j] . num, max) ;
free ( p) ;
return 0 ;
}
7-4 通讯录的录入与显示
# include <stdio.h>
# include <stdlib.h>
int main ( ) {
struct inf {
char name[ 20 ] ;
char birthday[ 20 ] ;
char sex[ 10 ] ;
char tel[ 20 ] ;
char num[ 20 ] ;
} ;
int N = 0 ;
scanf ( "%d" , & N) ;
struct inf list[ N] ;
int i = 0 ;
for ( ; i < N; i++ )
{
scanf ( "%s %s %s %s %s\n" , & list[ i] . name, & list[ i] . birthday, & list[ i] . sex, & list[ i] . tel, & list[ i] . num) ;
}
int k = 0 ;
scanf ( "%d" , & k) ;
i = 0 ;
int q[ 15 ] = { 0 } ;
for ( ; i < k; i++ )
{
scanf ( "%d" , & q[ i] ) ;
}
i = 0 ;
for ( ; i < k; i++ )
{
if ( q[ i] >= 0 && q[ i] < N)
printf ( "%s %s %s %s %s\n" , list[ q[ i] ] . name, list[ q[ i] ] . tel, list[ q[ i] ] . num, list[ q[ i] ] . sex, list[ q[ i] ] . birthday) ;
else
printf ( "Not Found\n" ) ;
}
return 0 ;
}