Тема: Масиви. Динамічна пам'ять
1. Задані два масиви A(N) і B(N) . Підрахувати в них кількість елементів, великих значення T і першим на друк вивести масив, що має найменшу їх кількість.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Масиви. Динамічна пам'ять
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
1. Задані два масиви A(N) і B(N) . Підрахувати в них кількість елементів, великих значення T і першим на друк вивести масив, що має найменшу їх кількість.
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int *a, *b, na, nb, i, T = 6, fa = 1, fb = 1;
cout << "Size of array a: ";
cin >> na;
a = (int*)calloc(na, sizeof(int));
cout << "Size of array b: ";
cin >> nb;
b = (int*)calloc(nb, sizeof(int));
if (!a || !b)
{
puts("ERROR");
return 1;
}
cout << "Enter elements of array a:\n";
for (i = 0; i < na; i++)
{
cin >> *(a+i);
if (!(*(a+i)))
fa > T;
}
cout << "Enter elements of array b:\n";
for (i = 0; i < nb; i++)
{
cin >> *(b+i);
if (!(*(b+i)))
fb > T;
}
if (!fa)
{
cout << "Elements of array a:\n";
for (i = 0; i < na; i++)
cout << *(a +i) << " ";
}
if (!fb)
{
cout << "Elements of array b:\n";
for (i = 0; i < nb; i++)
cout << *(b +i) << " ";
}
free(a);
free(b);
cout << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
код не працює, має видати масив у якому є елементи більші за Т
Компілятор:
Size of array a: 5
Size of array b: 5
Enter elements of array a:
1 2 3 7 8
Enter elements of array b:
1 2 3 4 5
Press any key to continue . . .
Окрім жахливої мішанини С та С++ у вашому коді, як ви гадаєте,
if (!(*(a+i)))
fa > T;
що ось ця конструкція мала б робити?
що ось ця конструкція мала б робити?
Думаю, те, що в умові написано. Прочитайте уважно. Принаймні, це має не менше сенсу, ніж умова.
має видати масив у якому є елементи більші за Т
Ну от і з'ясувалося. У вас проблема з розумінням умови. В умові сказано "першим на друк вивести масив, що має найменшу їх кількість". Тобто якщо масиви a=[1,10,20] і b=[2,3,4], а T=6, то в a 2 елементи, більших за 6, а в b таких елементів 0, тобто треба спершу вивести b, а потім a, а не "масив у якому є елементи більші за Т".
ось що зробила GPT))
#include <iostream>
using namespace std;
int main() {
int N, T;
cin >> N >> T;
int A[N], B[N];
int countA = 0, countB = 0;
for (int i = 0; i < N; i++) {
cin >> A[i];
if (A[i] > T) countA++;
}
for (int i = 0; i < N; i++) {
cin >> B[i];
if (B[i] > T) countB++;
}
if (countA < countB) {
cout << "Array A has the smallest number of elements greater than T." << endl;
cout << "Number of elements in A greater than T: " << countA << endl;
} else {
cout << "Array B has the smallest number of elements greater than T." << endl;
cout << "Number of elements in B greater than T: " << countB << endl;
}
return 0;
}
ніби все правильно)))
першим на друк вивести масив
Firefox is dead, де у ChatGPT виводиться хоч якийсь масив?
ось що зробила GPT))
А можете повністю алгоритм викласти, як ви це робите?
ніби все правильно)))
Не компілюється, чомусь )
Firefox is dead написав:ось що зробила GPT))
А можете повністю алгоритм викласти, як ви це робите?
ChatGPT українську розуміє?
так, розуміє
також, може давати відповідь і на українській, якщо я її це попрошу
правда інколи може суржик проскокувати, і певні діалекти
Firefox is dead написав:ніби все правильно)))
Не компілюється, чомусь )
▼Прихований текст
спробуйте в онлайн компіляторі
https://www.onlinegdb.com/online_c++_compiler
все працює ^_^
Цікаво
Мені вдалось добитись від chatGPT валідний С++ код.
все працює ^_^
Ні, не працює )
Те, що ваш компілятор неявно використовує не стандартні розширення - не робить ваш код "працюючим".
Навіть chatGPT це визнав:
Цікаво :)
Мені вдалось добитись від chatGPT валідний С++ код.▼Прихований текстFirefox is dead написав:все працює ^_^
Ні, не працює )
Те, що ваш компілятор неявно використовує не стандартні розширення - не робить ваш код "працюючим". :)
Навіть chatGPT це визнав:▼Прихований текст
якщо ви уважно подивитесь на мій запит, я не вказав там "динамічна пам'ять"
тому, це мій промах)))
ось, я її попросив переробити
Прошу вибачення за плутанину. У своїй попередній відповіді я помилково використовував масиви, виділені стеком, замість динамічно розподіленої пам'яті. Ось виправлений варіант коду з використанням динамічно виділеної пам'яті для масивів:
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися