//实验四
//(由于本实验程序因原表数据的不同而不同,故在程序中不计算具体的测试的差异系数、每个人的注意系数和每个问题的注意系数)
//**************************************************************************************************************
#include
#define M 51
#define N 11
void main()
{
//变量定义或初始化部分
//**********************************************************************
int table[M][N]={0};//用以存放所有情况
int volume=0;//实际列数
int row=0;//实际行数
int i=0;
int j=0;
int i1=0;
int j1=0;
int k=0;
int m=0;
int n=0;
int rowcount[M]={0};//用以存放行统计量
int volumecount[N]={0};//用以存放列统计量
//**********************************************************************
printf("请从左至右按顺序输入每名学生对每个问题的得分情况(行为学生,列为问题):\n");
printf("请输入题目的个数(不超过10个):\n");
scanf("%d",&volume);
printf("请输入学生的个数(不超过15个):\n");
scanf("%d",&row);
printf("现在请输入得分情况:\n");
//格式化输入数据部分
//**********************************************************************
for(i=0;i
for(j=0;j
scanf("%d",&table[i][j]);
}
printf("\n");
}
//**********************************************************************
//输出原表部分
//**********************************************************************
printf("输出原表:\n");
for(i=0;i
for(j=0;j
printf("%d ",table[i][j]);
}
printf("\n");
}
//**********************************************************************
//将每行累加
//**********************************************************************
for(i1=0;i1
for(j1=0;j1
rowcount[i1]+=table[i1][j1];
}
}
//**********************************************************************
//将数值部分进行按行排序
//**********************************************************************
for(i=0;i
m=i;
for(j=i+1;j
if(rowcount[m]
m=j;
}
}
if(m!=i)
{
for(n=0;n
k=table[i][n];
table[i][n]=table[m][n];
table[m][n]=k;
}
}
for(i1=0;i1
rowcount[i1]=0;
}
for(i1=0;i1
for(j1=0;j1
rowcount[i1]+=table[i1][j1];
}
}
}
//**********************************************************************
//将每列累加
//**********************************************************************
for(j1=0;j1
for(i1=0;i1
volumecount[j1]+=table[i1][j1];
}
}
//**********************************************************************
//将数值部分进行按列排序
//*************
*********************************************************
for(j=0;j
m=j;
for(i=j+1;i
if(volumecount[m]
m=i;
}
}
if(m!=j)
{
for(n=0;n
k=table[n][m];
table[n][m]=table[n][j];
table[n][j]=k;
}
}
for(j1=0;j1
volumecount[j1]=0;
}
for(j1=0;j1
for(i1=0;i1
volumecount[j1]+=table[i1][j1];
}
}
}
//**********************************************************************
//输出排序后的表
//**********************************************************************
printf("输出排序后的表:\n");
for(i=0;i
for(j=0;j
printf("%d ",table[i][j]);
}
printf("\n");
}
//**********************************************************************
}
//**************************************************************************************************************