首页 新闻 会员 周边 捐助

请各位网友帮忙

0
悬赏园豆:100 [已关闭问题]

实际上我是想编这样一个程序,定义一个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]);
   }
  }
}

yichunchun的主页 yichunchun | 初学一级 | 园豆:100
提问于:2010-07-29 10:32
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册