30/09/2018, 21:06
Với n <= 4 thì chương trình chạy ngon, n > 4 thì lỗi tùm lum
Chèn giá x vào dãy a[] sao cho dãy a[] vẫn tăng dần. G/s dãy a[] tăng dần.
#include<stdio.h>
#include<conio.h>
void chenx(float a[], int *n, float x)
{
*n = *n + 1;
int k = -1;
while (x >= a[k])
{
k++;
}
if (k == -1)
a[-1] = x;
for (int i = *n-1; i > k; i--)
{
a[i] = a[i-1];
}
a[k] = x;
}
main()
{
int n = 5;
float a[5] = {1, 3, 5, 7, 9};
float x = 5;
chenx(a, &n, x);
for(int i = 0; i < n; i++)
printf("%.0f ", a[i]);
}
Bài liên quan
làm gì có giá trị nào a[-1] đâu bạn
Đoạn a[-1] hơi lạ nhưng mình chạy code của bác bt,n>4 có làm sao đâu
mảng thì chỉ có từ 0 thui nếu đánh là -1 giá trị nó là khác rồi
a[-1] = 0. Thử trong C++ thì lại = x
a[-1] = 0
Lập trình lại, bỏ a[-1] ra khỏi code, giá trị a[-1] không có thật, mảng mặc định bắt đầu từ 0. Nếu để a[-1] trong code thì ráng mà chịu chứ hỏi chi nữa nà.
hướng dẫn cho e ko có a[-1] đi, nếu số ý nhỏ hơn a[0] thì gán tn
Bạn muốn chèn cho dãy bao nhiêu phần tử? Nếu dãy với số phần tử không lớn lắm thì bạn cứ chèn phần tử mới vào cuối dãy, rồi dùng thuật toán xếp cho dãy tăng dần là xong.
Bạn tham khảo code mình ko ?