实际上我是想编这样一个程序,定义一个A(6,33)和B(6,16)的数组,
A(6,1)=A(1,1)+A(2,1)+A(3,1)+。。。。。+A(5,1)
A(6,2)=A(1,2)+A(2,2)+A(3,2)+。。。。。+A(5,2)
。
。
。
。
A(6,33)=A(1,33)+A(2,33)+A(3,33)+。。。A(5,33)
B(6,1)=B(1,1)+B(2,1)+B(3,1)+。。。。B(5,1)
B(6,2)=B(1,2)+B(2,2)+B(3,2)+。。。。B(5,2)
。
。
。
B(6,16)=B(1,16)+B(2,16)+B(3,16)+。。。B(5,16)
对数组A(5,33)和B(5,33)赋初值,然后计算出A(6,33)和B(6,16)值。
然后,分别对A(1,33),A(2,33),。。。。。A(6,33)
B(1,16),B(2,16)B(3,16)。。。。。B(6,16)按从大到小的顺序排序。然后打印结果,
朋友用VC C++编了一个程序,但编制的程序我只能在电脑上看到程序执行的结果,我要求能在打印机上打出来。请朋友帮忙 修改一下,谢谢
附要修改的程序
#include<stdio.h>
#define N 6
#define M 33
#define R 16
void input_a(int (*p)[M][2]);
void output_a(int (*p)[M][2]);
void sort_a(int (*p)[M][2]);
void input_b(int (*p)[R][2]);
void output_b(int (*p)[R][2]);
void sort_b(int (*p)[R][2]);
void sort_row(int (*p)[2],int);
void swap(int *,int *);
void main()
{
int i;
for(i=0;i<100000;i++)
{
int a[N][M][2],b[N][R][2];
input_a(a);
input_b(b);
sort_a(a);
sort_b(b);
output_a(a);
output_b(b);
}
}
void input_a(int (*p)[M][2])
{
int i,j;
printf("输入数组a:\n");
for(i=0;i<N-1;i++)
for(j=0;j<M;j++)
{
scanf("%d",&p[i][j][0]);
p[i][j][1]=j+1;
}
for(i=0;i<M;i++)
{
p[N-1][i][0]=0;
p[N-1][i][1]=i+1;
for(j=0;j<N-1;j++)
p[N-1][i][0]+=p[j][i][0];
}
}
void input_b(int (*p)[R][2])
{
int i,j;
printf("输入数组b:\n");
for(i=0;i<N-1;i++)
for(j=0;j<R;j++)
{
scanf("%d",&p[i][j][0]);
p[i][j][1]=j+1;
}
for(i=0;i<R;i++)
{
p[N-1][i][0]=0;
p[N-1][i][1]=i+1;
for(j=0;j<N-1;j++)
p[N-1][i][0]+=p[j][i][0];
}
}
void output_a(int (*p)[M][2])
{
int i,j;
printf("a数组新的顺序为\n");
for(i=0;i<N;i++)
{
printf("\n");
for(j=0;j<M;j++)
{
printf("a[%d][%d]=%-3d",i+1,p[i][j][1],p[i][j][0]);
}
printf("\n");
}
}
void output_b(int (*p)[R][2])
{
int i,j;
printf("b数组的新顺序为\n");
for(i=0;i<N;i++)
{
printf("\n");
for(j=0;j<R;j++)
{
printf("b[%d][%d]=%-3d",i+1,p[i][j][1],p[i][j][0]);
}
printf("\n");
}
}
void swap(int *pa,int *pb)
{
int temp;
temp=*pa;
*pa=*pb;
*pb=temp;
}
void sort_a(int (*p)[M][2])
{
int i;
for(i=0;i<N;i++)
sort_row(p[i],M);
}
void sort_b(int (*p)[R][2])
{
int i;
for(i=0;i<N;i++)
sort_row(p[i],R);
}
void sort_row(int (*p)[2],int k)
{
int i,j;
for (i=0;i<k-1;i++)
for (j=i+1;j<k;j++)
{
if(p[i][0]<p[j][0])
{
swap(&p[i][0],&p[j][0]);
swap(&p[i][1],&p[j][1]);
}
}
}