/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:统计出若干个学生的平均成绩,最高分以及得最高
分的人数。
例如:输入10名学生的成绩分别为92,87,68,56,92,
84,67,75,92,66,则输出平均成绩为77.9,
最高分为92,得最高分的人数为3人。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
float Max=0;
int J=0;
float fun(float array[],int n)
{
/**********Program**********/
int i;
float sum=0;
Max=array[0];
for(i=0;i<n;i++)
{
sum+=array[i];
if(Max<array[i])Max=array[i];
}
for(i=0;i<n;i++)
{
if(Max==array[i])J++;
}
return sum/n;
/********** End **********/
}
main( )
{
float a[10],ave;
int i=0;
for(i=0;i<10;i++)
scanf("%f",&a[i]);
ave=fun(a,10);
printf("ave=%f\n",ave);
printf("max=%f\n",Max);
printf("Total:%d\n",J);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
float iIN[10],iOUT;
int iCOUNT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(iCOUNT=0;iCOUNT<10;iCOUNT++)
fscanf(IN,"%f",&iIN[iCOUNT]);
iOUT=fun(iIN,10);
fprintf(OUT,"%f %f\n",iOUT,Max);
fclose(IN);
fclose(OUT);
}
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,
请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。
注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
-------------------------------------------------------*/
#include <stdio.h>
#define N 16
void wwjt ( );
typedef struct
{
char num[10];
int s;
} STREC;
int fun( STREC *a, STREC *b )
{
/**********Program**********/
int i,sum=0,n,j=0;
n = a[0].s;
for(i=1;i<16;i++)
{
if(n<a[i].s)
{
n=a[i].s;
}
}
for(i=0;i<16;i++)
{
if(a[i].s==n)
{
b[sum].s=a[i].s;
for(j=0;a[i].num[j]!='\0';)
{
b[sum].num[j] = a[i].num[j];
j++;
}
b[sum].num[j]='\0';
sum++;
}
}
return sum;
/********** End **********/
}
void main()
{
STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",77},{"GA017",64},{"GA018",64},{"GA016",72}};
STREC h[N];
int i, n;
n=fun( s, h );
printf("The %d highest score :\n", n);
for(i=0; i<n; i++)
printf("%s %4d\n", h[i].num, h[i].s);
printf("\n");
wwjt ( );
}
void wwjt( )
{
FILE *in , *out ;
int i, n, a;
STREC s[N];
STREC h[N];
in=fopen("in.dat", "r");
if(in==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
out=fopen("out.dat", "w");
if(out==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(a = 0; a < 10; a ++)
{
for(i = 0; i<16; i ++)
{
fscanf(in, "%s %d", &s[i].num, &s[i].s);
}
n=fun( s, h );
fprintf(out, "%d\n", n);
for(i = 0; i < n; i ++)
fprintf(out, "%d\n", h[i].s);
printf("\n");
}
fclose(in);
fclose(out);
}
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:输入2个学生3门课的成绩,计算学生成绩平均分,
课程平均分和最高分.
例如:输入2名学生3门课的成绩分别为92,87,68,56,
92,84 则
学生1平均分:82.33
学生2平均分:77.33
课程1平均分:74.00
课程2平均分:89.50
课程3平均分:76.00
最高分为:92
------------------------------------------------*/
#include <stdio.h>
void wwjt();
/*定义全局变量*/
/*学生成绩平均分*/
float StuAgv[2];
/*课程平均分*/
float CouAgv[3];
/*所有学生的所有课程最高分*/
float Max=0;
/*说明:需要在下面函数中把题干要求中的结果赋值到上面定义一变量中*/
void fun(float score[2][3])
{
/**********Program**********/
int i,j;
float sum;
for(i=0;i<2;i++)
{
sum=0;
for(j=0;j<3;j++)
{
sum=sum+score[i][j];
StuAgv[i]=sum/3;
}
}
for(j=0;j<3;j++)
{
sum=0;
for(i=0;i<2;i++)
sum=sum+score[i][j];
CouAgv[j]=sum/2;
}
Max=score[0][0];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
if(Max<=score[i][j])
{
Max=score[i][j];
}
}
}
return;
/********** End **********/
}
void main()
{
int i,j;
float score[2][3];
printf("输入学生的成绩:");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%f",&score[i][j]);
printf("\n输出学生的成绩:");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%.2f ",score[i][j]);
printf("\n");
}
fun (score);
for(i=0;i<2;i++)
printf("第%d个学生的平均成绩是:%0.2f\n",i+1,StuAgv[i]);
for(j=0;j<3;j++)
printf("第%d门课的平均成绩是:%0.2f\n",j+1,CouAgv[j]);
printf("所有分数中的最高分为:%.2f\n",Max);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
float iIN[2][3];
int i,j;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i<2;i++)
for(j=0;j<3;j++)
fscanf(IN,"%f",&iIN[i][j]);
fun(iIN);
for(i=0;i<2;i++)
fprintf(OUT,"%.2f\n",StuAgv[i]);
for(j=0;j<3;j++)
fprintf(OUT,"%.2f\n",CouAgv[j]);
fprintf(OUT,"%.2f\n",Max);
fclose(IN);
fclose(OUT);
return ;
}
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请编一个函数fun(char *s),该函数的功能是:把字符串中的内容逆置。
例如:字符串中原有的字符串为"abcdefg",则调用该函数后,串中的内容为"gfedcba"。
注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入
所编写的若干语句。
-------------------------------------------------------*/
#include <string.h>
#include <conio.h>
#include <stdio.h>
#define N 81
void wwjt();
void fun(char*s)
{
/**********Program**********/
int i,n=0;
char b[N];
while(*s){
b[n]=*s;
n++;
*s++;
}
*s--;
for(i=0;i<n;i++)
{
*s=b[i];
*s--;
}
/********** End **********/
}
void main()
{
char a[N];
printf("Enter a string:");
gets(a);
printf("The original string is:");
puts(a);
fun(a);
printf("\n");
printf("The string after modified:");
puts(a);
wwjt();
}
void wwjt()
{
FILE *in,*out;
char a[N];
int i;
in=fopen("in.dat","r");
if(in==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
out=fopen("out.dat","w");
if(out==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i=0; i<N; i++)
{
fscanf(in,"%s",&a[i]);
}
fun(a);
fprintf(out,"%s\n",a);
fclose(in);
fclose(out);
}
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:从键盘输入10个学生的成绩,统计及格(60分及其60分
以上)的人数。请编fun函数。
-------------------------------------------------------*/
#include "stdio.h"
void wwjt();
int fun (int a[])
{
/**********Program**********/
int i,n=0;
for(i=0;i<10;i++)
{
if(a[i]>=60)
{
n++;
}
}
return n;
/********** End **********/
}
void main()
{
int a[10], i, s;
for(i = 0; i < 10; i ++)
scanf("%d", &a[i]);
s=fun(a);
printf("%d", s);
wwjt();
}
void wwjt()
{
FILE *IN, *OUT;
int iIN[10], i;
int iOUT, iCOUNT;
IN=fopen("in.dat", "r");
if(IN == NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT = fopen("out.dat", "w");
if(OUT == NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i = 0; i < 5; i ++)
{
for(iCOUNT = 0; iCOUNT < 10; iCOUNT++)
fscanf(IN,"%d", &iIN[iCOUNT]);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数fun将一个数组中的值按逆序存放,并在
main()函数中输出。
例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。
------------------------------------------------*/
#include <stdio.h>
#define N 5
void wwjt();
void fun(int arr[],int n)
{
/**********Program**********/
int i,t;
for(i=0;i<n/2;i++)
{
t=arr[i];
arr[i]=arr[n-1-i];
arr[n-1-i]=t;
}
return;
/********** End **********/
}
main()
{
int a[N]={8,6,5,4,1},i;
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
fun(a,N);
for(i=0;i<N;i++)
printf("%4d",a[i]);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int n;
int i[10];
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read FILE Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write FILE Error");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%d",&i[n]);
}
fun(i,10);
for(n=0;n<10;n++)
{
fprintf(OUT,"%d\n",i[n]);
}
fclose(IN);
fclose(OUT);
}