Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Tìm số lớn nhất trong mảng 2 chiều

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    2

    Mặc định Tìm số lớn nhất trong mảng 2 chiều

    Em code như thế này nhưng không hiểu vì sao chương trình in ra Max=0.Em không hiểu!!!Mong mấy huynh chỉ giáo!
    #include<stdio.h>
    #include<conio.h>
    #define M 100
    float arran(float *a,int n,int m);
    float arran(float *a,int n,int m)
    {
    int i,j;
    float max;
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    {
    max=(*(a+i*M+j));
    if(max<(*(a+i*M+j)))
    max=(*(a+i*M+j));
    }
    return max;
    }
    void main(void)
    {
    clrscr();
    int i,j,n,m;
    float a[M][M],max;
    printf("Declare the size of matrix:");
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    {
    printf("Declare the matrix a[%d][%d]=",i,j);
    scanf("%f",a+i*M+j);
    }
    max=arran((float*)a,n,m);
    printf("Max=%5.2f",max);
    getch();
    }

  2. #2
    No Avatar
    ngocbig Khách

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<stdlib.h>
    4.  
    5.  
    6. float arran(float **a,int n,int m)
    7. {
    8.     int i,j;
    9.     float max=a[0][0];
    10.     for(i=0;i<n;i++)
    11.         for(j=0;j<m;j++)
    12.         {
    13.             if(max<a[i][j])
    14.                 max=a[i][j];
    15.         }
    16.     return max;
    17. }
    18. int main(void)
    19. {
    20.     //clrscr();
    21.     int i,j,n,m;
    22.     float** a;
    23.     float temp,max;
    24.     printf("Declare the size of matrix:");
    25.     scanf("%d%d",&n,&m);
    26.     a= (float**)malloc(n*sizeof(float));
    27.     for(i=0;i<m;i++)
    28.         a[i] = (float*)malloc(m*sizeof(float));
    29.     for(i=0;i<n;i++)
    30.         for(j=0;j<m;j++)
    31.         {
    32.             printf("Declare the matrix a[%d][%d]=",i,j);
    33.             scanf("%f",&temp);
    34.             a[i][j]=temp;
    35.         }
    36.     max=arran(a,n,m);
    37.     //free
    38.     for(i=0;i<m;i++)
    39.         free(a[i]);
    40.     free(a);
    41.     printf("Max=%5.2f",max);
    42.     getch();
    43.  
    44.     return 0;
    45. }
    Đã được chỉnh sửa lần cuối bởi ngocbig : 05-01-2009 lúc 08:43 PM.

  3. #3
    Ngày gia nhập
    02 2008
    Bài viết
    15

    Trích dẫn Nguyên bản được gửi bởi kan-getting Xem bài viết
    float arran(float *a,int n,int m)
    {
    int i,j;
    float max;
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    {
    max=(*(a+i*M+j));//loi o cho nay
    if(max<(*(a+i*M+j)))
    max=(*(a+i*M+j));
    }
    return max;
    }
    sau moi lan so sanh ban gắn ngay max bằng phần tử so sánh !!! vì thế hàm trên của bạn trả về max là phần tử cuối cùng của mảng !!!

Các đề tài tương tự

  1. Tìm số lớn nhất trong mảng 1 chiều
    Gửi bởi kahai2k7 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 19
    Bài viết cuối: 08-06-2013, 05:30 PM
  2. Mảng trên C++ Tìm hình chữ nhật trong mảng 2 chiều
    Gửi bởi uchiha trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 13-04-2012, 11:37 AM
  3. Tìm số lẻ lớn nhất trong mảng 2 chiều?
    Gửi bởi duachuot13 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 20
    Bài viết cuối: 14-10-2010, 10:31 PM
  4. Tìm giá trị phần tử lớn nhất và nhỏ nhất trong mảng 2 chiều
    Gửi bởi vinkt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 15
    Bài viết cuối: 29-08-2010, 11:31 AM
  5. Bài tập C Viết chương trình để tìm giá trị lớn nhất và nỏ nhất trong 1 mảng ( Mảng 1 chiều)
    Gửi bởi vinkt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 26-08-2010, 10:34 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn