HN - Aptech


 
IndexIndex  PortalPortal  CalendarCalendar  GalleryGallery  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share | 
 

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

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
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

Bài gửiTiêu đề: c:12/q3/phan in ma tran kha hap dan!   Wed 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
Xem lý lịch thành viên
haph86
Gà mới lớn
Gà mới lớn


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

Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   Wed 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
Xem lý lịch thành viên
nbp2983
Gà con
Gà con


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

Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   Wed 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
Xem lý lịch thành viên
haph86
Gà mới lớn
Gà mới lớn


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

Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   Wed 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
Xem lý lịch thành viên




Join date : 01/01/1970

Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   Wed 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
Xem lý lịch thành viên
nbp2983
Gà con
Gà con


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

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

anh da sua lai *n>18 rui, the la OK!
Về Đầu Trang Go down
Xem lý lịch thành viên
haph86
Gà mới lớn
Gà mới lớn


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

Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   Thu 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
Xem lý lịch thành viên
nbp2983
Gà con
Gà con


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

Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   Thu 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
Xem lý lịch thành viên




Join date : 01/01/1970

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

chém vớ vàn thôi hehehe
Về Đầu Trang Go down
Xem lý lịch thành viên
spyware
Đại Bàng Tinh
Đại Bàng  Tinh


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

Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   Sun 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 ?

_________________
::::Real Programmer :::::
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: c:12/q3/phan in ma tran kha hap dan!   Today at 11:22 pm

Về Đầu Trang Go down
 
c:12/q3/phan in ma tran kha hap dan!
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Bán nhà MT Phan Anh, Khu Hòa Cường, Đà Nẵng
» Bangkok Adrenaline - Đặc khu Bangkok DVDrip
» The Secret I Can't tell - (Bí mật không thể nói) DVDrip link Mediafire
» Bán chung cư N05 Đông Nam Trần Duy Hưng
» BÁN NHÀ MẶT NGÕ 204 TRẦN DUY HƯNG - CẦU GIẤY

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