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

Đề tài: Viết chương trình đọc ma trận

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

    Mặc định Viết chương trình đọc ma trận

    Viết chương trình đọc ma trận các số nguyên từ tập tin D:\data.inp, tìm 5 số dương nguyên tố nhỏ nhất của ma trận và ghi kết quả theo thứ tự tăng dần vào file data.out, nếu ma trận không có đủ 5 số dương nguyên tố thì xuất -1 vào các vị trí cuối bị thiếu.
    Nội dung tập tin data.inp:
    Dòng 0: số dòng số cột
    Dòng i (i > 0): các phần tử trên dòng thứ (i – 1) của ma trận
    Nôi dụng tập tin data.out:
    Dòng 1: 5 số dương nguyên tố nhỏ nhất của ma trận trên (sắp theo thứ tự tăng dần)
    Ví dụ:
    Cho tập tin data.inp có nội dung như sau:
    3 4
    12 3 -9 7
    -12 -8 -2 5
    53 -3 -5 -7
    Tập tin trên thể hiện ma trận có 3 dòng, 4 cột.
    Nội dung tập tin data.out tương ứng với tập tin data.inp trên sẽ là:
    3 5 7 53 -1
    Lưu ý: tập tin data.inp được đặt trong thư mục gốc ổ đĩa D (D:\), tập tin data.out được đặt trong thư mục mặc định (thư mục của project), nếu không chỉnh đúng đường dẫn này, bài sẽ không được tính điểm.

    Ai đó giúp Mình Với

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

    Mình giúp có được trả công gì không nhỉ.hjhj.Bạn xem code này nhé:
    C Code:
    1. #include"stdio.h"
    2. #include"conio.h"
    3. #include"math.h"
    4. #define MAX 10
    5.  
    6. int MaTran[MAX][MAX];
    7. int SoDong,SoCot;
    8. int KetQua[MAX*MAX];
    9. int SoPhanTu=0;
    10. void docMaTran();
    11. void ghiKetQua();
    12. void main()
    13. {
    14.     clrscr();
    15.     printf(" CHUONG TRINH DOC MA TRAN VA IN RA CAC SO NGUYEN TO");
    16.     docMaTran();
    17.     ghiKetQua();
    18. }
    19.  
    20. // Ham doc ma tran tu file data.out
    21. void docMaTran()
    22. {
    23.     FILE *f;
    24.     int i,j;
    25.     if((f=fopen("D:\\data.inp","r"))==NULL)
    26.     {
    27.         printf("\n%c Chua co du lieu dau vao cho ma tran.\n Hay kiem tra lai",7);
    28.         fflush(stdin);getch();
    29.         exit(1);
    30.     }
    31.     fscanf(f,"%d%d",&SoDong,&SoCot);
    32.     if((SoDong>MAX)||(SoCot>MAX)||(SoDong<1)||(SoCot<1))
    33.     {
    34.         printf("\n%c Ma tran qua lon hoac khong phai ma tran.Kiem tra lai",7);
    35.         fflush(stdin);getch();
    36.         exit(1);
    37.     }
    38.     for(i=0;i<SoDong;++i)
    39.         for(j=0;j<SoCot;++j)
    40.             fscanf(f,"%d",&MaTran[i][j]);
    41.     fclose(f);
    42. }
    43. // Ham kiem tra mot so la so nguyen to
    44. int nguyenTo(int n)
    45. {
    46.     int ok=1;
    47.     int i;
    48.     if (n<2) return 0;
    49.     if (n==2) return 1;
    50.     for (i=2;i<=(int)sqrt(n);++i)
    51.         if((n%i)==0)
    52.         {
    53.             ok=0;
    54.             break;
    55.         }
    56.     return ok;
    57. }
    58. // Ham nhat cac so nguyen to cua ma tran
    59. void nhatKetQua()
    60. {
    61.     int i,j;
    62.     for (i=0;i<SoDong;++i)
    63.         for(j=0;j<SoCot;++j)
    64.             if(nguyenTo(MaTran[i][j])) KetQua[SoPhanTu++]=MaTran[i][j];
    65. }
    66. // Ham sap xep theo chieu tang dan cac so nguyen to vua nhat ra
    67. void sapXepKetQua()
    68. {
    69.     int i,j,tam;
    70.     for(i=0;i<SoPhanTu-1;++i)
    71.         for(j=i+1;j<SoPhanTu;++j)
    72.             if(KetQua[j]<KetQua[i])
    73.             {
    74.                 tam=KetQua[i];
    75.                 KetQua[i]=KetQua[j];
    76.                 KetQua[j]=tam;
    77.             }
    78. }
    79. // Ham ghi ket qua ra file data.out
    80. void ghiKetQua()
    81. {
    82.     FILE *f;
    83.     int i;
    84.     f=fopen("data.out","w");
    85.     nhatKetQua();
    86.     sapXepKetQua();
    87.     if(SoPhanTu>=5)
    88.         for(i=0;i<5;++i) fprintf(f,"%d  ",KetQua[i]);
    89.     else
    90.     {
    91.         for (i=0;i<SoPhanTu;++i)
    92.             fprintf(f,"%d  ",KetQua[i]);
    93.         for(i=SoPhanTu;i<5;++i)
    94.             fprintf(f,"-1  ");
    95.     }
    96.     fclose(f);
    97. }

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

  1. Bài tập C viết chương trình để cộng hai ma trận sử dụng con trỏ
    Gửi bởi toimuonhocc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 28-11-2013, 04:21 PM
  2. Viết chương trình tính định thức của ma trận vuông cấp N
    Gửi bởi khucdaodau trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 13-11-2012, 09:47 PM
  3. Bài tập C++ viết ma trận vuông bằng đệ quy
    Gửi bởi heavenlove88 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 29-06-2012, 11:11 AM
  4. Đề xuất Bình chọn bài viết - đánh giá bài gửi trả lời
    Gửi bởi OWickedFox trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 1
    Bài viết cuối: 06-11-2011, 08:21 PM
  5. Viết hàm con trả về nhiều giá trị trong ma trận?
    Gửi bởi tuan_uct trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-05-2011, 11:11 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