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

Đề tài: bài tập C mảng 2 chiều!

  1. #1
    Ngày gia nhập
    12 2012
    Bài viết
    1

    Wink bài tập C mảng 2 chiều!

    đề bài: nhập vào 1 ma trận, đưa phần tử min mỗi dòng về đầu dòng (yêu cầu tự chia và viết hàm)

    ai giúp mình bài này với. thx!! (viết code đầy đủ giúp mình tí nhé)

  2. #2
    Ngày gia nhập
    11 2012
    Bài viết
    136

    đề chung chung quá, ý bạn là đổi chỗ min với phần tử đầu tiên thôi hay toàn bộ min về đầu dòng, nếu toàn bộ min về đầu dòng thì với mỗi dòng sắp xếp tăng dần các phần tử thế là ok. lười thì lười cho chót quá rét gõ mà chả ấm tay gì cóng thêm ôi hà nội mùa này. trình bày cả hai luôn cho bạn một là đổi chỗ với min đầu tiên với phần tử đầu a[i][0] mỗi dòng, thứ 2 là đưa min về toàn bộ đầu dòng bằng sắp xếp, thêm sửa xóa gì tùy bạn.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<malloc.h>
    4.  
    5. //prototype function
    6. void nhap(int **a, int hang, int cot);
    7. int timMin(int *a, int cot, int Min);
    8. void bubbleSort(int *a, int cot);
    9. void hoanDoimin(int **a, int hang, int cot);
    10. void hoanDoisort(int **a, int hang, int cot);
    11. void hienThi(int **a, int hang, int cot);
    12. //define function
    13. void nhap(int **a, int hang, int cot)
    14. {
    15.     for(int i=0; i< hang; ++i)
    16.        for(int j=0; j< cot; ++j)
    17.        {
    18.             printf("a[%d][%d]=",i,j);
    19.             scanf("%d",&a[i][j]);
    20.        }
    21.     return;
    22. }
    23.  
    24. int timMin(int *a, int cot, int Min)
    25. {
    26.     int i=0;
    27.     for(int j=0; j< cot; ++j)
    28.        if(a[j] < Min)
    29.        {
    30.          Min = a[j];
    31.          i = j;
    32.        }
    33.       return i;
    34. }
    35.  
    36. void bubbleSort(int *a, int cot)
    37. {
    38.      for(int i=1; i< cot -1; ++i)
    39.         for(int j=0; j< cot - i; ++j)
    40.            if(a[j] > a[j+1])
    41.            {
    42.              int temp = a[j];
    43.              a[j] = a[j+1];
    44.              a[j+1] = temp;
    45.            }
    46.   return;
    47.  
    48. }
    49.    
    50. void hoanDoimin(int **a, int hang, int cot)
    51. {
    52.     for(int i=0; i < hang; ++i)
    53.     {
    54.       int j = timMin(&a[i][0], cot, a[0][i]);
    55.         int temp = a[i][0];
    56.             a[i][0] = a[i][j];
    57.             a[i][j] = temp;
    58.     }  
    59.     return;
    60. }
    61.  
    62. void hoanDoisort(int **a, int hang, int cot)
    63. {
    64.    for(int i=0; i < hang; ++i)
    65.       bubbleSort(&a[i][0], cot);
    66.    return;
    67. }
    68.  
    69. void hienThi(int **a, int hang, int cot)
    70. {
    71.  
    72.     for(int i=0; i< hang; ++i)
    73.     {
    74.       for(int j=0; j< cot; ++j)
    75.             printf("%d\t",a[i][j]);
    76.       printf("\n");
    77.     }  
    78.     return;
    79. }
    80.  
    81. int main()
    82. {
    83.   int hang, cot;
    84.  do{
    85.   printf("Nhap vao hang:");
    86.   scanf("%d",&hang);
    87.   printf("Nhap vao cot:");
    88.   scanf("%d",&cot);
    89.   }while(hang <= 0||cot <= 0);
    90.   int **a = (int**)malloc(hang * sizeof(int *));
    91.   for(int i=0; i< hang; ++i)
    92.       a[i] = (int*)malloc(cot * sizeof(int));
    93.   nhap(a,hang,cot);
    94.  
    95.   printf("\nMa tran truoc khi hoan doi.\n\n");
    96.   hienThi(a, hang, cot);
    97.  //hoan doi voi min dau tien cua moi dong
    98.   //hoanDoimin(a, hang, cot);
    99.  
    100.   //printf("\nMa tran sau khi hoan doi.\n\n");
    101.   //hienThi(a, hang, cot);
    102.  
    103.   //sap xep moi dong tang dan
    104.   hoanDoisort(a, hang, cot);
    105.   printf("\nMa tran sau khi hoan doi sort.\n\n");
    106.   hienThi(a, hang, cot);
    107.  
    108.   free(a);
    109.   a = NULL;
    110.   getch();
    111.   return 0;
    112. }
    Đã được chỉnh sửa lần cuối bởi kimcy1992 : 30-12-2012 lúc 03:32 PM.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

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

    Trích dẫn Nguyên bản được gửi bởi nhoklovex4 Xem bài viết
    đề bài: nhập vào 1 ma trận, đưa phần tử min mỗi dòng về đầu dòng (yêu cầu tự chia và viết hàm)

    ai giúp mình bài này với. thx!! (viết code đầy đủ giúp mình tí nhé)
    mỗi dòng trong ma trận là 1 mảng 1 chiều... => đưa các phần tử min về đầu mảng...
    áp dụng cho tất cả các dòng trong ma trận...=> xong

  4. #4
    Ngày gia nhập
    12 2012
    Bài viết
    1

    được rồi. cảm ơn các bạn nhé :x

  5. #5
    Ngày gia nhập
    06 2012
    Bài viết
    10

    Smile mình xin đóng gop mọt doạn code này

    Trích dẫn Nguyên bản được gửi bởi nhoklovex4 Xem bài viết
    được rồi. cảm ơn các bạn nhé :x
    có thể dễ hiểu hơn(@@)
    C++ Code:
    1. #include<conio.h>
    2. #include<stdio.h>
    3. void nhap(int a[][50],int &m,int &n)
    4. {
    5.     printf("Nhap so dong m = ");
    6.     scanf("%d",&m);
    7.     printf("\nNhap so cot n = ");
    8.     scanf("%d",&n);
    9.     for(int i=0;i<m;i++)
    10.     {
    11.         for(int j=0;j<n;j++)
    12.         {
    13.             printf("\na[%d][%d] = ",i,j);
    14.             scanf("%d",&a[i][j]);
    15.         }
    16.     }
    17. }
    18. void xuat(int a[][50],int m,int n)
    19. {
    20.         for(int i=0;i<m;i++)
    21.     {
    22.         for(int j=0;j<n;j++)
    23.         {
    24.             printf("\t%d",a[i][j]);
    25.            
    26.         }
    27.         printf("\n");
    28.     }
    29. }
    30. void hoanvi(int a[][50],int &m,int &n)
    31. {
    32.     for(int i=0;i<m;i++)
    33.     {
    34.         int min=a[i][0];
    35.         int k,l;
    36.         for(int j=0;j<n;j++)
    37.         {
    38.             if(min>a[i][j])
    39.             {
    40.                 min=a[i][j];
    41.                 k=i;
    42.                 l=j;
    43.             }
    44.            
    45.         }
    46.         int tmp=a[k][l];
    47.             a[k][l]=a[i][0];
    48.             a[i][0]=tmp;
    49.     }
    50. }
    51. int main()
    52. {
    53.     int m,n,a[50][50];
    54.     nhap(a,m,n);
    55.     xuat(a,m,n);
    56.     hoanvi(a,m,n);
    57.     xuat(a,m,n);
    58.     getche();
    59.     return 0;
    60. }

  6. #6
    Ngày gia nhập
    06 2012
    Bài viết
    10

    Wink đóng góp thêm một đoạn nữa,mình sủa lại ham hoán vị một chut @@

    C++ Code:
    1. #include<conio.h>
    2. #include<stdio.h>
    3. void nhap(int a[][50],int &m,int &n)
    4. {
    5.     printf("Nhap so dong m = ");
    6.     scanf("%d",&m);
    7.     printf("\nNhap so cot n = ");
    8.     scanf("%d",&n);
    9.     for(int i=0;i<m;i++)
    10.     {
    11.         for(int j=0;j<n;j++)
    12.         {
    13.             printf("\na[%d][%d] = ",i,j);
    14.             scanf("%d",&a[i][j]);
    15.         }
    16.     }
    17. }
    18. void xuat(int a[][50],int m,int n)
    19. {
    20.         for(int i=0;i<m;i++)
    21.     {
    22.         for(int j=0;j<n;j++)
    23.         {
    24.             printf("\t%d",a[i][j]);
    25.            
    26.         }
    27.         printf("\n");
    28.     }
    29. }
    30. void hoanvi(int a[][50],int &m,int &n)
    31. {
    32.     for(int i=0;i<m;i++)
    33.     {
    34.         int min=a[i][0];
    35.         int k,l;
    36.         int j;
    37.         for(j=0;j<n;j++)
    38.         {
    39.             if(min>a[i][j])
    40.             {
    41.                 min=a[i][j];
    42.                 //k=i;
    43.                 //l=j;
    44.             }
    45.            
    46.         }
    47.         for(j=0;j<n;j++)
    48.         {
    49.             if(min==a[i][j])
    50.             {
    51.                 break;
    52.             }
    53.         }
    54.         int tmp=a[i][j];
    55.             a[i][j]=a[i][0];
    56.             a[i][0]=tmp;
    57.     }
    58. }
    59. int main()
    60. {
    61.     int m,n,a[50][50];
    62.     nhap(a,m,n);
    63.     xuat(a,m,n);
    64.     hoanvi(a,m,n);
    65.     xuat(a,m,n);
    66.     getche();
    67.     return 0;
    68. }

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

  1. Trả lời: 2
    Bài viết cuối: 21-04-2013, 09:46 AM
  2. Lỗi: bố cục trang web tự tăng theo chiều ngang khi chiều cao thay đổi
    Gửi bởi tuanngocpt trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 16-03-2013, 11:25 PM
  3. Trả lời: 1
    Bài viết cuối: 28-04-2012, 09:43 PM
  4. Cách truyền mang 1 chiều cho hàm bài con trỏ và mảng một chiều ai có thể giải thích giúp mình
    Gửi bởi biencute trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 21-03-2012, 09:00 AM
  5. Lời giải bài tập: Chuỗi Ký tự, mảng số nguyên 1 chiều, mảng 2 chiều, tạo Menu
    Gửi bởi xuanngoc trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 15-10-2011, 01:17 AM

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