int main()
{ 
	int i,j;
	float h;
	
	input_stu();
	aver_stu();
	aver_cour();
	printf("\n  NO.   cour1  cour2  cour3  cour4  cour5  aver \n");
	for(i=0;i<N;i++)
	{ 
		printf("\n NO %2d",i+1);
		for(j=0;j<M;j++)
			printf("%8.2f",score[i][j]);
		printf("%8.2f\n",a_stu[i]);
	}
	printf("naverage:");
	for (j=0;j<M;j++)
		printf("%8.2f",a_cour[j]);
	printf("\n");
	h=highest();
	printf("highest:%7.2f   NO. %2d    course %2d\n",h,r,c);
	printf("variance %8.2f\n",s_var());
	return 0;
}
int main(void)
{
	int i,j;
	float h;
	input_stu();
	
	aver_stu();
	
	aver_cour();

	for(i=0;i<N;i++)
		{
			printf("第%d名学生的平均成绩为:%8.2f",a_stu[i]);
		}
	for(j=0;i<M;j++)
		{
			printf("第%d门课程的平均成绩为:%8.2f",a_cour[j]);
		}

	h=highest();
	printf("最高分数是学生%d在课程%d中所取得的%8.2f分\n",r,c,h);

	printf("方差为%8.2f",s_var());

	return 0;
	}
int main()
{
	int i,j;
	float h;
	input_stu();
	aver_stu();
	aver_cour();
	printf("NO.	课程1	课程2	课程3	课程4	课程5	平均\n");
	for(i=0;i<N;i++)
	{
		printf("\n NO %2d",i+1);
		for(j=0;j<M;j++)
			printf("%8.2f",score[i][j]);
		printf("%8.2f\n",a_stu[i]);
	}
	printf("\naverage:");
	for(j=0;j<M;j++)
		printf("%8.2f",a_cour[j]);
	printf("\n");
	h=highest();
	printf("最高分:%7.2f NO.%2d course %2d\n",h,r,c);
	printf("平均分方差:%8.2f\n",s_var());
	return 0;
}
Exemple #4
0
Parabol::Parabol(double x[3], double y[3]) : s_det(0), s_dxzero(0) {
  mfunname("Parabol::Parabol(double x[3], double y[3])");

  check_econd12a(x[0], ==, x[1],
                 "x[2]=" << x[2] << " y[0]=" << y[0] << " y[1]=" << y[1]
                         << " y[2]=" << y[2] << '\n',
                 mcerr);
  check_econd12a(x[0], ==, x[2],
                 "x[1]=" << x[1] << " y[0]=" << y[0] << " y[1]=" << y[1]
                         << " y[2]=" << y[2] << '\n',
                 mcerr);
  check_econd12a(x[1], ==, x[2],
                 "x[0]=" << x[0] << " y[0]=" << y[0] << " y[1]=" << y[1]
                         << " y[2]=" << y[2] << '\n',
                 mcerr);
  DynArr<DoubleAc> mat(3, 3);
  DynLinArr<DoubleAc> par(3);
  DynLinArr<DoubleAc> f(3);
  for (int i = 0; i < 3; ++i) {
    f[i] = y[i];
    mat.ac(i, 2) = 1.0;
    mat.ac(i, 1) = x[i];
    mat.ac(i, 0) = x[i] * x[i];
  }
  int ierr;
  int szero;
  DynArr<DoubleAc> mat_inv;
  inverse_DynArr_prot(mat, mat_inv, szero, ierr);
  //check_econd11a( ierr, != 0 , "should never happen\n", mcerr );
  if (ierr == 0) {
    par = mat_inv * f;
    //Iprintdla_DoubleAc(mcout, par, 3);
    //if(fabs(par[0]) == 0.0)
    //  da=0.0;
    //else
    //  da=par[0];
    da = par[0];
    db = par[1];
    dc = par[2];
  } else {
    da = 0.0;
    DynLinArr<int> s_var(3);
    s_var[0] = 0;
    s_var[1] = 1;
    s_var[2] = 1;
    DynArr<DoubleAc> mat_inv1(3, 3);
    //int ierr1;
    //inverse_DynArr(mat, s_var, mat_inv, ierr, mat_inv1, ierr1);
    inverse_DynArr_prot(mat, s_var, mat_inv, szero, ierr);
    if (ierr != 0) {
      // what if x1 and x2 are the same but the both differ from x0
      // Then the following should help:
      mat.ac(1, 1) = mat.ac(0, 1);
      mat.ac(1, 2) = mat.ac(0, 2);
      f[1] = f[0];
      s_var[0] = 0;
      s_var[1] = 1;
      s_var[2] = 1;
      inverse_DynArr_prot(mat, s_var, mat_inv, szero, ierr);
      check_econd11a(ierr, != 0,
                     "should never happen\nmat=" << mat << "\ns_var=" << s_var
                                                 << "\nmat_inv=" << mat_inv,
                     mcerr);
    }
    par = mat_inv * f;
    db = par[1];
    dc = par[2];
  }