codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include<stdio.h> #include<conio.h> #include<math.h> #define MAX 100 void nhap (int a[], int &n) { do { printf("\nNhap so phan tu: "); scanf("%d", &n); if(n <= 0 || n > MAX) { printf("\nSo phan tu khong hop le. Xin kiem tra lai !"); } }while(n <= 0 || n > MAX); for(int i = 0; i < n; i++) { printf("\nNhap a[%d]: ", i); scanf("%d", &a[i]); } } void xuat(int a[], int n) { for(int i = 0; i < n; i++) { printf("%4d", a[i]); } } void DuaChanVeDau(int a[], int ViTriDoi) { int tam = a[ViTriDoi]; // biến tạm lưu tất cả các giá trị thỏa ĐK đổi for(int i = ViTriDoi; i > 0; i--) { a[i] = a[i - 1]; } a[0] = tam; } void Dua0VaoGiua(int a[], int ViTriDoi, int ViTriChanCuoi) { // Do 0 nằm giữa mảng nên 0 sẽ là giá trị chẵn cuối để thỏa yêu cầu bài toán for(int i = ViTriDoi; i > ViTriChanCuoi; i--) { a[i] = a[i - 1]; } a[ViTriChanCuoi] = 0; } void DuaChanVeDauLeVeCuoi0NamGiuaMang(int a[], int n) { int i, dem; int ViTriChanCuoi = 0; for(i = 0; i < n; i++) { if(a[i] % 2 == 0 && a[i] != 0) { DuaChanVeDau(a, i); } } for(i = 0; i < n; i++) { if(a[i] % 2 != 0) { ViTriChanCuoi = i; break; } } for(i; i < n; i++) // bỏ khởi tạo i để tránh dư 1 số 0 { if(a[i] == 0) { Dua0VaoGiua(a, i, ViTriChanCuoi); } } } int main() { int n; int a[MAX]; nhap(a, n); xuat(a, n); DuaChanVeDauLeVeCuoi0NamGiuaMang(a, n); printf("\nDua chan ve dau, le ve cuoi, 0 nam giua mang: "); xuat(a, n); getch(); return 0; }
Private
[
?
]
Run code
Submit