Câu 2: Cho dãy số {a1,a2,…an} với n<=100. Viết chương trình thực hiện các công việc sau: a) Đọc các giá trị {a1,a2,..an} vào từ bàn phím và xác định xem dãy nhận được có phải là hoán vị của {1,2..n} không? b) Phân chia {a1,a2…an} thành các dãy con tăng dần có độ dài cực đại.

Tuesday, August 26, 2014
Câu 2: Cho dãy số {a1,a2,…an} với n<=100. Viết chương trình thực hiện các công việc sau:
a)       Đọc các giá trị {a1,a2,..an} vào từ bàn phím và xác định xem dãy nhận được có phải là hoán vị của {1,2..n} không?
Phân chia {a1,a2…an} thành các dãy con tăng dần có độ dài cực đại.
code :


Bai 2a

#include <stdio.h>
#include <conio.h>
void nhapmang(int a[],int n)
{
                int i;
                for (i=0;i<n;i++)
                {
                                printf("\nNhap phan tu thu %5d    :   ",i);
                                scanf("%d",&a[i]);
                }
}
void xemmang(int a[],int n)
{
                int i;
                printf("\n"); 
                for (i=0;i<n;i++)
                                printf("  %5d  ",a[i]);
                printf("\n");
}
int kiemtra(int x[],int n)
{
     int y[1000],i;
                 for (i=0;i<1000;i++) y[i]=0;
                 for (i=0;i<n;i++) (y[x[i]])++;
                 for (i=1;i<=n;i++) if (y[i]!=1) return 0;
                 return 1;
}
void main()
{
                int n;
                int a[100];
                printf("\nnhap so phan tu trong mang   :  ");
                scanf("%d",&n);
                nhapmang(a,n);
                xemmang(a,n);
                if (kiemtra(a,n)) printf("\n       La hoan vi cua .................");
                else printf("\n       Khong phai La hoan vi..............");
                getch();
}






Bai2 B

#include <stdio.h>
#include <conio.h>
void nhapmang(int a[],int n)
{
                int i;
                for (i=0;i<n;i++)
                {
                                printf("\nNhap phan tu thu %5d    :   ",i);
                                scanf("%d",&a[i]);
                }
}
void xemmang(int a[],int n)
{
                int i;
                printf("\n"); 
                for (i=0;i<n;i++)
                                printf("  %5d  ",a[i]);
                printf("\n");
}
void daycon(int b[],int n)
{
     int i=0,j,x;
                 printf("\nDay con");
                 do
                 {
                                 while ((b[i]>b[i+1])&&(i<n))
                     {
                                                  printf("\n%5d\n",b[i]);
                                                  i++;
                                 }
                                 if (i>=n) break;
                                 j=i;
                                 while ((b[i]<=b[i+1])&&(i<n)) i++;
                                 printf("\n");
                                 for (x=j;x<=i;x++) printf("%5d",b[x]);
                                 printf("\n");
                 } while (i<n);
}
void main()
{
                int n;
                int a[100];
                printf("\nnhap so phan tu trong mang   :  ");
                scanf("%d",&n);
                nhapmang(a,n);
                xemmang(a,n);
                printf("\nDay con");
                daycon(a,n);
                getch();

}
Chia sẻ bài viết ^^
Other post

All comments [ 0 ]


Your comments