Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    sửa dùm code - ma trận xoắn ốc

    các bạn sửa dùm code hộ mình nha. mình nhập dòng bằng cột thì đúng , ko hỉu sao dòng khác cột là bị sai . vd nhập dòng =3 , cột = 4;
    Với lại sửa dùm mình để có thể sử dụng hàm nhaprandom sao cho đúng .Thanks


    Mã:
    #include<conio.h>#include<stdlib.h>#include<stdio.h>//void nhaprandom(int a[][20],int dong ,int cot);void Xuat (int    a[][20], int d, int c);void Nhap (int   a[][20], int &d, int &c )  ;void dove1chieu(int a[][20], int mang1[] ,  int dong , int cot );void sapxep(int mang1[] , int dong , int cot);void xoanoc(int mang1[], int matran[][20], int dong , int cot);void xuatmatran(int a[][20], int cot,int dong);  void Nhap (int   a[][20], int &d, int &c ){  printf ("
    Nhap so dong: ");  scanf (" %d", &d );  printf ("
    Nhap so cot: ");  scanf ("%d", &c );  for ( int i = 0; i < d; i ++ )    for (int j = 0; j < c; j ++)   {      printf (" a[%d][%d] = ", i, j );   scanf ("%d", &a[i][j]);   }}    void Xuat (int    a[][20], int d, int c){ printf ("
    Noi dung ma tran:
    ");  for (int i = 0; i < d; i++) {    for (int j = 0; j < c; j++)      printf (" \t %d ", a[i][j] );   printf ("
    ");}} void dove1chieu(int a[][20], int mang1[] ,  int dong , int cot ){  int k=0;  for(int i=0;i<dong;i++)    {      for(int j=0;j<cot;j++)    {      mang1[k]=a[i][j];      k++;    }    }}void sapxep(int mang1[] , int dong , int cot){  int temp;  for(int i=0;i< (dong*cot)-1; i++)    {      for(int j=i+1; j< (dong*cot); j++)    {      if(mang1[i] > mang1[j])        {          temp=mang1[i];          mang1[i]=mang1[j];          mang1[j]=temp;        }    }    }} void xoanoc(int mang1[], int matran[][20], int dong , int cot) {          int dem = 0;          int i=0, j=0;          int DauTien=0;          int Tru=0;          do          {              i=DauTien;              for (j=i; j< cot - Tru; j++)              {                      matran[i][j] = mang1[dem];                      dem++;              }              j--;              for (i++; i< dong - Tru; i++ )              {                      matran[i][j] = mang1[dem];                      dem++;              }              i--;              for (j--; j>=Tru; j--)              {                      matran[i][j] = mang1[dem];                      dem++;              }              Tru++;              j++;              for (i--; i>=Tru; i--)              {                      matran[i][j] = mang1[dem];                      dem++;              }              DauTien++;          } while (dem!=cot*dong);  }  void xuatmatran(int a[][20], int cot,int dong)  {          printf("\t------------------------
    ");          for (int i=0; i<dong; i++)          {              printf("\t");              for (int j=0; j<cot; j++)              {                      printf("%4d", a[i][j]);              }              printf("
    ");          }          printf("\t------------------------
    ");  }       void main(){    clrscr();    int d,c;//  printf("nhap dong cot");//  scanf("%d%d",&d,&c);    int a[20][20];    int mang1[200];    int matran[20][20];    Nhap(a,d,c); //   nhaprandom(a,d,c);    Xuat(a,d,c);    dove1chieu(a,mang1,d,c);    sapxep(mang1,d,c);    xoanoc(mang1,matran,d,c);    xuatmatran(matran,d,c);    getch();}   /*void nhaprandom(int a[][20],int dong ,int cot){  randomize();  for(int i=0;i<dong;i++)    {      for(int j=0;j<cot;j++)        {           a[i][j]=random(30);        }    }} */

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Lần sau bạn hỏi nên hỏi gắn gọn thôi, không hiểu code chỗ nào thì trích dẫn ngắn ngọn. Chứ dài vậy không ai giải thích hộ đâu.
    Mình thấy để sửa đến lỗi hàng và cột của bạn thì phải debug trứoc đó quá nhiều lỗi, toát hết cả mồ hôi.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •