Chủ đề: Anh chị tìm lỗi dùm em với!!!
-
15-12-2011, 06:49 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Anh chị tìm lỗi dùm em với!!!
Anh chị nào giúp em với! đề là nhập 1 mảng 1 chiều co n nguyên thừa số (điều kiện) và số nguyên x tùy ý. tìm các phần tử của mảng là ước của x và dồn chúng vào cuối mảng.
chương trình em viết khi chạy thi dồn được các phần tử không phải ước lên đầu rồi, nhưng các ước của x khi dồn về dưới thì bị biến dạng tùm lum. Em tìm hoài ma không khắc phục được. Ai giúp em với (bắt buộc dùng mảng).
Em cảm ơn nhiều
Mã:#include <stdio.h> #include <conio.h> void nhapsonguyenduong (int &n, int &X) { do { printf (" Nhap so nguyen duong n: "); scanf ("%d", &n); }while (n < 1 || n > 10000); printf (" Nhap so nguyen X: "); scanf ("%d", &X); } void nhapmang1chieu ( int Mang[], int n) { for (int i = 0; i < n ; i++) { printf (" nhap phan tu: MangA[%d] ", i); scanf ("%d", &Mang[i]); } } void sapxep(int Mang[], int X, int n) { int h, k = n, p; printf (" Day sau khi don cac phan tu la uoc cua %d ve cuoi day se la: ", X); for (int j = 0; j < k ; j++) { if (X % Mang[j] == 0) { h = j; Mang[j] = p; for (h ; h < k - 1 ; h++ ) { Mang[h] = Mang[h + 1]; } Mang[k-1] = p; } } for (int i = 0; i < n; i++) { printf ("Phan tu thu %d la: %d ", i, Mang[i]); } } void main () { int n, X, MangA[100]; tieptuc: nhapsonguyenduong ( n, X); nhapmang1chieu (MangA, n); sapxep(MangA, X, n); printf (" Nhan ESC de thoat hoac phim bat ki de tiep tuc!!! "); if(getch()!= 27 ) goto tieptuc; }
View more random threads:
- Cách nhập 1 string aray
- Chuỗi định dạng của biến??
- Vẽ 1 hình chữ nhật bằng graphics.h đơn giản
- mô phỏng con lắc đơn trên C
- E mới học C, có bài về ứng dụng ngăn xếp như thế này, các a chị vui lòng giúp e được ko ạ?
- xin thêm các chiêu với hàm if!
- Sửa lỗi trong mảng
- Đảo ngược danh sách dùng stack bị lỗi
- hàm void trên C có tác dụng gì?
- Cho em hỏi về hàm srand một chút
-
16-12-2011, 06:27 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
em cảm ơn anh. em làm được rồi nhưng thứ tự các ước của X khi dồn về cưối mảng lại bị đảo ngược! anh hay ai có cách gì để thứ tự không bị đảo ngược không ạh? em cảm ơn nhiều.
Mã:void sapxep(int Mang[], int X, int n) { int h, k = n, p; printf (" Day sau khi don cac phan tu la uoc cua %d ve cuoi day se la: ", X); for (int j = 0; j < k ; j++) { if (X % Mang[j] == 0) { h = j; p = Mang[j]; for (h ; h < k - 1 ; h++ ) { Mang[h] = Mang[h + 1]; } Mang[k-1] = p; j--; k--; } } for (int i = 0; i < n; i++) { printf ("Phan tu thu %d la: %d ", i, Mang[i]); } }
-
16-12-2011, 07:19 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mã:void sapxep(int Mang[], int X, int n) { int h, k = n, p; printf (" Day sau khi don cac phan tu la uoc cua %d ve cuoi day se la: ", X); for (int j = 0; j < k ; j++) { if (X % Mang[j] == 0) { h = j; Mang[j] = p; //sai cho nay for (h ; h < k - 1 ; h++ ) { Mang[h] = Mang[h + 1]; } Mang[k-1] = p; } } for (int i = 0; i < n; i++) { printf ("Phan tu thu %d la: %d ", i, Mang[i]); } }
-
18-12-2011, 07:52 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Theo như code của bạn thì j luôn là 0 và k giảm, để đẩy các ước của x về cuối mà không làm xáo trộn vị trị bạn cho vòng lặp hoán đổi vị trí mảng chạy từ h đến n chứ không phải là k vì nếu chạy đến k thì những phần tử được xếp trước đó không còn nằm trong giới hạn của k nữa
Mã:void sapxep(int Mang[], int X, int n) { int h, k = n, p; printf (" Day sau khi don cac phan tu la uoc cua %d ve cuoi day se la: ", X); for (int j = 0; j < k ; j++) { if (X % Mang[j] == 0) { h = j; p = Mang[j]; for (h ; h < n - 1 ; h++ ) { Mang[h] = Mang[h + 1]; } Mang[n-1] = p; j--; k--; } } for (int i = 0; i < n; i++) { printf ("Phan tu thu %d la: %d ", i, Mang[i]); } }
Bất chấp những lầm tưởng phổ quát, hồ hết những người có âm đạo đều khó lên đỉnh khi bị kích thích âm đạo. Tuy nhiên, điều đó không có tức thị nó không thể vui được! Việc xâm nhập vào âm đạo bằng...
Quý bà giải tỏa bằng việc kích...