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

Đề tài: giúp sửa lỗi bài tập trong C

  1. #1
    Ngày gia nhập
    07 2018
    Bài viết
    3

    Mặc định giúp sửa lỗi bài tập trong C

    đầu tiên xin cảm ơn ae đã xem qua bài của mình, mình có vài bài tập chạy bị lỗi mà không biết lỗi ở đâu nên mong ae xem giúp và lý do là học theo từng phần nên xin ae nếu có viết lại thì xin đừng dùng hàm chức năng và những cái nâng cao về sau hơn, xin cảm ơn!

    bt1: viết c trình chạy ma trận vuông là ma trận chuyển vị với cấp phát động (BÀI NÀY MÌNH KHÔNG THỂ CHUYỂN VỊ ĐƯỢC MA TRẬN)

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



    int main()
    {

    int m,n,i,j;
    float **ppf1,**ppf2,tg;
    printf("nhap so hang va so cot cua ma tran vuong: ");
    do
    {
    scanf("%d%d",&m,&n);
    }while(m!=n);
    //cap phat dong
    ppf1=(float**)malloc(m*sizeof(float*));
    for(i=0;i<m;i++)
    ppf1[i]=(float*)malloc(n*sizeof(float));

    ppf2=(float**)malloc(m*sizeof(float*));
    for(i=0;i<m;i++)
    ppf2[i]=(float*)malloc(n*sizeof(float));
    //nhap gia tri tung phan tu
    for(i=0;i<m;i++)
    for(j=0;j<n;j++)
    {
    printf("A[%d][%d]= ",i+1,j+1);
    scanf("%f",&tg);
    ppf1[i][j]=tg;
    }
    // ma tran chuyen vi
    for (i=0; i<m; i++)
    for (j=0; j<n; j++)
    ppf1[i][j] = ppf2[j][i];
    printf("\nMa tran chuyen vi cua no = ");
    for (i=0; i<m; i++)
    {

    printf("\n");
    for (j=0; j<n; j++)
    printf("%.0f\t", ppf2[j][i]);
    }
    }





    - - - Nội dung đã được cập nhật ngày 19-07-2018 lúc 10:18 AM - - -

    mod close giúp mình topic này với! cảm ơn (vì mình đã đăng cái khác bên hỏi đáp C/C++ rồi! )
    Đã được chỉnh sửa lần cuối bởi chemgiodangcap9 : 22-07-2018 lúc 03:17 PM.

  2. #2
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    499

    Code bt1 của bạn, mình đã chữa.

    C Code:
    1. #include <stdio.h>
    2. #include <math.h>
    3. #include <stdlib.h>
    4. int main()
    5. {
    6.     int m,n,i,j;
    7.     float **ppf1,**ppf2,tg;
    8.     printf("nhap so hang va so cot cua ma tran vuong: ");
    9.     do {
    10.         scanf("%d%d",&m,&n);
    11.     } while(m!=n);
    12.     //cap phat dong
    13.     ppf1=(float**)malloc(m*sizeof(float*));
    14.     for(i=0;i<m;i++) {
    15.         ppf1[i]=(float*)malloc(n*sizeof(float));
    16.     }
    17.     ppf2=(float**)malloc(m*sizeof(float*));
    18.     for(i=0;i<m;i++) {
    19.         ppf2[i]=(float*)malloc(n*sizeof(float));
    20.     }
    21.     //nhap gia tri tung phan tu
    22.     for(i=0;i<m;i++) {
    23.         for(j=0;j<n;j++) {
    24.             printf("A[%d][%d]= ",i+1,j+1);
    25.             scanf("%f",&tg);
    26.             ppf1[i][j]=tg;
    27.         }
    28.     }
    29.     // ma tran chuyen vi
    30.     for (i=0; i<m; i++) {
    31.         for (j=0; j<n; j++) {
    32.             ppf2[i][j] = ppf1[j][i];
    33.         }
    34.     }
    35.     printf("\nMa tran chuyen vi cua no = ");
    36.     for (i=0; i<m; i++) {
    37.         printf("\n");
    38.         for (j=0; j<n; j++)
    39.         printf("%.0f\t", ppf2[i][j]);
    40.     }
    41. }
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  3. #3
    Ngày gia nhập
    07 2018
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi Ada Xem bài viết
    Code bt1 của bạn, mình đã chữa.

    C Code:
    1. #include <stdio.h>
    2. #include <math.h>
    3. #include <stdlib.h>
    4. int main()
    5. {
    6.     int m,n,i,j;
    7.     float **ppf1,**ppf2,tg;
    8.     printf("nhap so hang va so cot cua ma tran vuong: ");
    9.     do {
    10.         scanf("%d%d",&m,&n);
    11.     } while(m!=n);
    12.     //cap phat dong
    13.     ppf1=(float**)malloc(m*sizeof(float*));
    14.     for(i=0;i<m;i++) {
    15.         ppf1[i]=(float*)malloc(n*sizeof(float));
    16.     }
    17.     ppf2=(float**)malloc(m*sizeof(float*));
    18.     for(i=0;i<m;i++) {
    19.         ppf2[i]=(float*)malloc(n*sizeof(float));
    20.     }
    21.     //nhap gia tri tung phan tu
    22.     for(i=0;i<m;i++) {
    23.         for(j=0;j<n;j++) {
    24.             printf("A[%d][%d]= ",i+1,j+1);
    25.             scanf("%f",&tg);
    26.             ppf1[i][j]=tg;
    27.         }
    28.     }
    29.     // ma tran chuyen vi
    30.     for (i=0; i<m; i++) {
    31.         for (j=0; j<n; j++) {
    32.             ppf2[i][j] = ppf1[j][i];
    33.         }
    34.     }
    35.     printf("\nMa tran chuyen vi cua no = ");
    36.     for (i=0; i<m; i++) {
    37.         printf("\n");
    38.         for (j=0; j<n; j++)
    39.         printf("%.0f\t", ppf2[i][j]);
    40.     }
    41. }
    cảm ơn bạn nhiều lắm và cho mình hỏi là vòng for tại chỗ gán cấp phát động nên dùng {} à bạn?
    Đã được chỉnh sửa lần cuối bởi chemgiodangcap9 : 22-07-2018 lúc 03:12 PM.

  4. #4
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    499

    Nên luôn viết {} trong thân của các vòng lặp (for, while,...) và nhánh rẽ (if, else,...), mặc dù cú pháp ngôn ngữ C/C++ không đòi hỏi điều này. Cú pháp là di sản của những năm 60 của thế kỷ trước và đến những năm 70 người ta đã biết rằng một cặp {} thiếu có thể gây thảm họa chết người. Viết {} thừa thì vô hại.
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

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