大一新生,c语言,编了 6个小时硬没编出来,心累,求解ಥ_ಥ

img

你题目的解答代码如下:

#include<stdio.h>
#include<stdlib.h>

void sort(int a[],int n)
{
    int i,j;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
            if(a[j] > a[j+1])
            {
                int t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
}
void linesort(int *a, int y,int x)
{
    int i;
    for (i = 0; i < y; i++)
        sort(a+i*x,x);
}

int* create(int y,int x)
{
    int i, j, *a;
    a = (int *)malloc(sizeof(int)*x*y);
    for (i = 0; i < y; i++)
    {
        for (j = 0; j < x; j++)
        {
            scanf("%d", &a[i*x+j]);
        }
    }
    return a;
}

void out(int *a, int y,int x)
{
    int i, j;
    for (i = 0; i < y; i++)
    {
        for (j = 0; j < x; j++)
        {
            printf("%6d", a[i*x+j]);
        }
        printf("\n");
    }
}
void fac(int *a,int *b, int y,int x)
{
    int i, j;
    for (i = 0; i < y; i++)
    {
        for (j = 0; j < x; j++)
        {
            printf("%6d", a[i*x+j]*b[j*y+i]);
        }
        printf("\n");
    }
}

void main(void)
{
    int n, m;
    int *a , *b;
    printf("请输入n:");
    scanf("%d", &n);
    printf("请输入m:");
    scanf("%d", &m);
    printf("请输入a数组:\n");
    a = create(n,m);
    printf("请输入b数组:\n");
    b = create(m,n);
    linesort(a,n,m);
    linesort(b,m,n);
    printf("输出a数组:\n");
    out(a,n,m);
    printf("输出a数组:\n");
    out(b,m,n);
    printf("输出乘积:\n");
    fac(a,b,n,m);
}

img

如有帮助,望采纳!谢谢!