30/09/2018, 16:37

Viết chương trình nhập ma trận thực A và tìm GTLN, GTNN trong ma trận

Đề bài: Viết chương trình nhập vào ma trận thực A sau đó tìm GTLN GTNN. In ra ma trận cùng kết quả tìm được ra màn hình.
Viết bằng ngôn ngữ C nhé. Ai giúp mình với

Nguyễn Minh Dũng viết 18:39 ngày 30/09/2018

Người thảo luận để tìm ra cách giải hay cho một bài toán khó sẽ trở thành lập trình viên giỏi. Người hay hỏi bài tập thì không. Còn bạn thì sao?

@huongud đã có giải pháp nào chưa? Nên chia sẻ giải pháp cho mọi người cùng thảo luận trước.

NOName viết 18:40 ngày 30/09/2018

Cảm ơn câu nói của anh, em sẽ thử

NOName viết 18:40 ngày 30/09/2018
#include <stdio.h>
#include <conio.h>

int main()
{
    float a[50][50], x, max, min;
    int i, j, n, m;

    printf("Nhap so hang ma tran A: ");
    scanf("%d", &n);
    printf("Nhap so cot ma tran A: ");
    scanf("%d", &m);

    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
        {
            printf("Nhap a[%d][%d]: ", i, j);
            scanf("%f", &x);
            a[i][j]=x;
        }
    printf("\nMa tran A:\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
            printf("%6.0f", a[i][j]);
        printf("\n");
    }
    max = min = a[0][0];
    for(i=0; i<n; i++)
        for(j=0; j<m;j++)
        {
            if(max<a[i][j])
                max = a[i][j];
            if(min>a[i][j])
                min = a[i][j];
        }
    printf("Max = %0.0f, Min = %0.0f", max, min);
    getch();
}

Cảm ơn a @ltd ^^
p/s: Đây là code của mình. Ai có cách nào tối ưu hơn, đơn giản hơn nữa ko mình xin được chỉ giáo

Hieu Nguyen Van viết 18:49 ngày 30/09/2018
  1. List item
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #define MAX 100
    void NhapMang (float a[], int n)
    	{
    	for (int i =0;i<n;i++)
    	{
    		printf("\nNhap a[%d] = ",i);
    		scanf("%f",&a[i]);
    	}
    }
    void XuatMang (float a[], int n)
    {
    	for (int i =0;i<n;i++)
    	{
    		printf("%4.2f",a[i]);
    	}
    }
    float TimMax (float a[], int n)
    {
    	float Max = a[0];
    	for (int i =1; i<n;i++)
    	{
    		if (a[i] > Max)
    			Max = a[i];
    	}
    	return Max;
    }
    float TimMin (float a[], int n)
    {
    	float Min = a[0];
    	for (int i =1; i<n;i++)
    	{
    		if (a[i] < Min)
    			Min = a[i];
    	}
    	return Min;
    }
    void main ()
    {
    	float a[MAX];
    	int n;
    	do 
    	{
    		printf("\nNhap so luong phan tu : ");
    		scanf("%d",&n);
    		if (n < 0 || n > MAX)
    			printf("\nSo luong phan tu khong hop le. Xin kt lai !");
    	} while (n < 0 || n > MAX);
    	NhapMang(a,n);
    	XuatMang(a,n);
    	printf("\nMax = %f\nMin = %f",TimMax(a,n),TimMin(a,n));
    	getch();
    
    }
Hieu Nguyen Van viết 18:47 ngày 30/09/2018

mình dùng hàm làm nhưng lỗi gì đăng mà chữ to đùng

NOName viết 18:46 ngày 30/09/2018

@vanhieu Hàm của mình dùng n rắc rối quá

#include <stdio.h>
#include <conio.h>

void nhap(float (*a)[50], int n, int m)
{
    float x;
    int i, j;
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
        {
            printf("Nhap a[%d][%d]: ", i, j);
            scanf("%f", &x);
            a[i][j]=x;
        }
}
void in(float (*a)[50], int n, int m)
{
    int i, j;
    printf("\nMa tran A:\n\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
            printf("%6.0f", a[i][j]);
        printf("\n");
    }
}
void maxmin(float (*a)[50], int n, int m)
{
    float max, min;
    int i,j;
    max=min=a[0][0];
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
        {
            if(max<a[i][j])max=a[i][j];
            if(min>a[i][j])min=a[i][j];
        }
    printf("Max = %0.0f, Min = %0.0f", max, min);
}
int main()
{
    float a[50][50];
    int n, m;
    printf("Nhap so hang ma tran A: ");scanf("%d", &n);
    printf("Nhap so cot ma tran A: ");scanf("%d", &m);
    nhap(a, n, m);
    in(a, n, m);
    maxmin(a, n, m);
    getch();
}

Mà code của cậu là tìm min max của mảng 1 chiều rồi. Của mình 2 chiều cơ

Hieu Nguyen Van viết 18:41 ngày 30/09/2018

bạn dùng con trỏ cấp 21 luôn đi

NOName viết 18:51 ngày 30/09/2018

cấp 21 là ntn bạn, mình chưa hiểu

Hieu Nguyen Van viết 18:52 ngày 30/09/2018

con trỏ cấp 2 sorry bạn mình viết nhầm

NOName viết 18:41 ngày 30/09/2018

con trỏ cấp 2 chắc mình chưa đc học, mình ms nhập môn C thôi

Bài liên quan
0