SLIDE1

Thursday, January 8, 2015

hoán vị 1 số trong lập trình c


//hoán vị các phần tử trong mảng , hoán vị 1 số nhập từ bàn phím trong lập trình c
//ví dụ 123=>6 hoán vị
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void nhap(int *a,int n)
{
for(int i=0;i<n;i++)
{
printf("a[%d]=",i+1);
scanf("%d",&a[i]);
}
}
void xuat(int *a,int n)
{
for(int i=0;i<n;i++) printf("%d ",a[i]);
printf("\n");
}
void doi(int &a,int &b)
{
int t=a;a=b;b=t;
}
void sapxep(int *a,int n,int i)
{
for(int j=i;j<n-1;j++)
for(int k=j+1;k<n;k++)
if(a[j]>a[k]) doi(a[j],a[k]);
}
void hoanvi(int *a,int n)
{
int i,j;
xuat(a,n);
loop:;
for(i=n-1;i>0;i--) if(a[i]>a[i-1]) break;
if(i!=0)
{
for(j=n-1;j>=i;j--)
{
if(a[j]>a[i-1])
{
doi(a[j],a[i-1]);
sapxep(a,n,i);
xuat(a,n);
break;
}
}
}
if(i!=0) goto loop;
}
void main()
{
int n,i;
printf("nhap so hoan vi:");
scanf("%d",&n);
int *a=(int *)malloc(n*sizeof(int));
nhap(a,n);
hoanvi(a,n);
getch();
}

Related Posts:

  • [đệ quy c/c++] đếm số phần tử phân biệt trong mảng [đệ quy c/c++] đếm số phần tử phân biệt trong mảng 7. Sử dụng đệ quy, viết hàm đếm các giá trị phân biệt trong mảng các số nguyên. (các  giá trị trùng nhau chỉ đếm một lần). #include<iostream> using namespace s… Read More
  • tạo lập đối tượng trong c++*tạo lập đối tượng Khai báo và tạo đối tượng: <tên lớp>  <tên đối tượng>; Gọi hàm thành phần của lớp <tên đối tượng>.<tên hàm thành phần> (<danh sách các tham số nếu có>); <tên con trỏ đố… Read More
  • code c++ phần mềm split and join file part,001,002code c++ phần mềm split and join file part,001,002 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<Windows.h> void layten(char *duongdan,char *ten) { int d=… Read More
  • lớp class trong lập trình c++Một lớp bao gồm các thành phần dữ liệu (thuộc tính) và các phương thức (hàm thành phần). Lớp trong C++ thực chất là một kiểu dữ liệu do người sử dụng định nghĩa. Trong C++, dùng từ khóa class để chỉ điểm bắt đầu của một lớp s… Read More
  • [đệ quy c/c++] kiểm tra các phần tử của mảng 8. Sử dụng đệ quy, viết hàm kiểm tra mảng có toàn các số nguyên chia hết cho 7 hay không. #include<iostream> using namespace std; int kiemtra(int a[],int n) { if(n==0) return 1; if(a[n-1]%7!=0) return 0; n--; retu… Read More