HN - Aptech
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

HN - Aptech


 
Trang ChínhTrang Chính  PortalPortal  GalleryGallery  Latest imagesLatest images  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

 

 c:12/q3/phan in ma tran kha hap dan!

Go down 
4 posters
Tác giảThông điệp
nbp2983
Gà con
Gà con



Tổng số bài gửi : 23
Join date : 18/06/2009

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeWed Jun 24, 2009 7:40 pm

Code:

 #include <stdio.h>
 #include <conio.h>
 #include <stdlib.h>
 #include <string.h>
 //khai bao ham con
 void menu(void);
 void nhap(int *n, int *m);
 void nhap2(int n, int m, int a[], int b[]);
 void tron(int n, int m,int a[], int b[], int c[]);
 void in(int n, int m, int c[]);
 void main()
 {
   int n,m;
   int a[20],b[20],c[40];
   char chon;
   clrscr();
   do
   {
      menu();
      printf("\nnhap lua chon:");
      fflush(stdin);
      chon=getchar();
      switch(chon)
      {
         case '1':
            nhap(&n,&m);
            break;
         case '2':
            nhap2(n,m,a,b);
            break;
         case '3':
            tron(n,m,a,b,c);
            break;
         case '4':
            in(n,m,c);
            break;
         case '5':
            exit(0);
         default:
            printf("\nlua chon sai, thuc hien lai!");
      }

   }while(chon!='5');
   getch();
 }
 //dinh nghia ham con
 void menu(void)
 {
   printf("\nmenu:");
   printf("\n1. nhap hai so n,m(1<=n<m<=19)");
   printf("\n2. nhap hai mang a,b");
   printf("\n3. tron mang");
   printf("\n4. in mang da tron");
   printf("\n5. thoat.");
 }
 void nhap(int *n, int *m)
 {
   printf("\nnhap n= ");
   scanf("%d",n);
   while(*n<1||*n>18)
   {
      printf("\nnhap lai n= ");
      scanf("%d",n);
   }
   printf("\nnhap m= ");
   scanf("%d",m);
   while(*m<1||*m>19||*m<=*n)
   {
      printf("\nnhap lai m= ");
      scanf("%d",m);
   }
 }
 void nhap2(int n, int m,int a[], int b[])
 {
   int i,j;
   printf("\nnhap mang a:\n");
   for(i=0;i<n;i++)
   {
      printf("a[%d]=",i);
      scanf("%d",&a[i]);
   }
   printf("\nnhap mang b:\n");
   for(j=0;j<m;j++)
   {
      printf("b[%d]=",j);
      scanf("%d",&b[j]);
   }
 }
 void tron(int n, int m, int a[], int b[], int c[])
 {
   int i, j, k,t;
   k=n+m;
   for(i=0;i<n;i++)
      c[i]=a[i];
   for(j=0;j<m;j++)
      c[j+n]=b[j];
   for(i=0;i<k-1;i++)
      for(j=i+1;j<k;j++)
         if(c[i]>c[j])
         {
            t=c[i];
            c[i]=c[j];
            c[j]=t;
         }
 }
 void in(int n, int m, int c[])
 {
   int i,j;
   printf("ma tran:\n");
   if((m+n)%n!=0)
   {
      for(i=m+n;i<((n+m)/n+1)*n;i++)
         c[i]=0;
      for(j=0;j<((n+m)/n+1)*n;j++)
      {
         printf("%d",c[j]);
         printf("\t");
         if((j+1)%n==0)
         printf("\n\n");
      }
   }
   else
      for(j=0;j<n+m;j++)
      {
         printf("%d",c[j]);
         printf("\t");
         if((j+1)%n==0)
         printf("\n\n");
      }
 }


Được sửa bởi nbp2983 ngày Wed Jun 24, 2009 10:55 pm; sửa lần 2.
Về Đầu Trang Go down
haph86
Gà mới lớn
Gà mới lớn
haph86


Tổng số bài gửi : 40
Join date : 04/06/2009

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeWed Jun 24, 2009 8:00 pm

- Anh Nghĩa kiểm tra lại điều kiện của n nhé, em nhập thử n = 19 thì vòng lặp nhập m sẽ không dừng.
- Ở trên khai báo anh cho a[100], b[100] mà số phần tử tối đa của mỗi mảng là 20 nên sẽ còn dư bộ nhớ, mình có thể tận dụng m phần tử tiếp theo của mảng a ( hoặc n phần tử tiếp theo của b ) để lưu mảng còn lại vào mà không cần phải dùng thêm mảng c.
Đó là một số cách suy nghĩ của em, anh thử tham khảo nhé Wink
Về Đầu Trang Go down
nbp2983
Gà con
Gà con



Tổng số bài gửi : 23
Join date : 18/06/2009

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeWed Jun 24, 2009 9:18 pm

ghi nhan chỗ khai bao, anh quen tay khai bao 100 phan tu, anh sửa lại rùi.
con chỗ n=19 van dung vi de bai cho 0<n,m<20 and n<m thi ta suy ra n<=18(nhu vay n!=19, vi n nguyen duong ma!). hihi... em xem lai nhe!
Về Đầu Trang Go down
haph86
Gà mới lớn
Gà mới lớn
haph86


Tổng số bài gửi : 40
Join date : 04/06/2009

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeWed Jun 24, 2009 9:23 pm

vâng, chuẩn rồi, nhưng như thế thì trong hàm nhập anh phải để *n>=19 chứ Wink nếu để *n>19 thì nó vẫn nhận giá trị 19 mà.
Về Đầu Trang Go down





Join date : 01/01/1970

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeWed Jun 24, 2009 9:33 pm

N<M hehehe cyclops


Được sửa bởi vobovilode ngày Thu Jun 25, 2009 12:46 am; sửa lần 1.
Về Đầu Trang Go down
nbp2983
Gà con
Gà con



Tổng số bài gửi : 23
Join date : 18/06/2009

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeWed Jun 24, 2009 10:59 pm

anh da sua lai *n>18 rui, the la OK!
Về Đầu Trang Go down
haph86
Gà mới lớn
Gà mới lớn
haph86


Tổng số bài gửi : 40
Join date : 04/06/2009

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeThu Jun 25, 2009 10:46 am

à, chỗ nào sửa anh post riêng code trong mục reply ý, như thế mọi người tiện tham khảo hơn vì không phải ai cũng theo dõi từ đầu Wink sửa như thế này code anh đúng hết rồi -> em chém vớ vẩn ở phía dưới à Laughing
Về Đầu Trang Go down
nbp2983
Gà con
Gà con



Tổng số bài gửi : 23
Join date : 18/06/2009

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeThu Jun 25, 2009 12:05 pm

OK! lan sau anh se sua code trong muc reply, moi nguoi co y kien gi thi cu tung len nhe.
Về Đầu Trang Go down





Join date : 01/01/1970

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeThu Jun 25, 2009 4:27 pm

chém vớ vàn thôi hehehe
Về Đầu Trang Go down
spyware
Đại Bàng Tinh
Đại Bàng  Tinh
spyware


Tổng số bài gửi : 116
Join date : 04/06/2009
Age : 39
Đến từ : HN

c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitimeSun Jul 05, 2009 10:43 am

Code:

void in(int n, int m, int c[])
{
   int i,j,add=0,h,k=0;
   while((m+n+add)%n!=0)
      add++;
   for(i=m+n;i<m+n+add;i++)
         c[i]=0; // gan cac phan tu tiep theo = 0
   printf("\nThe matrix is:\n");
   h=(m+n+add)/n;
   for(i=0;i<h;i++)
      {

      for(j=k;j<n+k;j++)
         printf("%5d",c[j]);
      printf("\n");
      k+=n;
      }
}

- thế này có ngắn hơn chút nào không ?
Về Đầu Trang Go down
Sponsored content





c:12/q3/phan in ma tran kha hap dan! Empty
Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   c:12/q3/phan in ma tran kha hap dan! Icon_minitime

Về Đầu Trang Go down
 
c:12/q3/phan in ma tran kha hap dan!
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» In ma trận tam giác(vấn đề mở)
» In ma trận tam giác( tiếp theo)
» Bài Tập về vòng lặp ( phần 1 ) ( Bài Thực hành 4 )

Permissions in this forum:Bạn không có quyền trả lời bài viết
HN - Aptech :: Khóa Học :: SEMESTER I :: C :: Bài Tập-
Chuyển đến