
помогите плиииз=))) у меня есть программа но вней 2 ошибки нужно сделать с помощью динамического
массива...// laba4_2.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"//#include "math.h"using namespace std;int main ( ){ float *a; int i,n; printf("n="); scanf("%i",&n); a=(float*)malloc(N*sizeof(float)); for( i=0; i<=n-1;i++ ) { printf("a[%i]= ",i ); scanf("%i",&a[i]); } for (i=0; i<=N-1; i++) { if (a[i]<0) { printf("oshibka\n"); } else { if (a[i]/2==0) { printf("chetnoe \n"); } else { printf("nechetnoe\n"); } } } return 1;}

Ответы на вопрос

#include "stdafx.h"
#include<iostream>
using namespace std;
void main(){
setlocale(0,"");
int n;
cout<<"Write n\n";cin>>n;
int* a = new int[n];
for (int i = 0; i < n; i++) cin>>a[i];
for (int i = 0; i < n; i++) {
if (a[i]%2==0) cout<<a[i]<<" Четное\n";
else cout<<a[i]<<" Не чотное\n";
}
delete a;
system("pause");
}



Я так понимаю, что вы хотели в программе проверить числа на четность/нечетность, но программа по вашему коду этого не сделает.
В таком виде должно быть без ошибок, но работает по-прежнему неверно:
#include "stdio.h"
//#include "math.h"
#include <iostream>
using namespace std;
int main ( )
{
float *a;
int i,n;
printf("n=");
scanf("%i",&n);
a=(float*)malloc(n*sizeof(float));
for( i=0; i<=n-1;i++ )
{
printf("a[%i]= ",i );
scanf("%i",&a[i]);
}
for (i=0; i<=n-1; i++)
{
if (a[i]<0)
{
printf("oshibka\n");
}
else
{
if (a[i]/2==0)
{
printf("chetnoe \n");
}
else
{
printf("nechetnoe\n");
}
}
}
system("pause");
return 1;
}



Я могу помочь вам с вашим кодом на C++. Ваша программа содержит несколько ошибок, которые нужно исправить. Вот некоторые из них:
- Вы используете переменную N, которая не определена. Возможно, вы имели в виду n, которая является размером динамического массива. - Вы используете функцию malloc для выделения памяти для массива, но не освобождаете ее с помощью free. Это может привести к утечке памяти. Лучше использовать оператор new и delete для работы с динамической памятью в C++. - Вы используете оператор == для проверки четности элементов массива, но это неверно, потому что они имеют тип float. Чтобы проверить, является ли число четным, нужно использовать оператор %, который возвращает остаток от деления. Например, a[i] % 2 == 0.
Вот исправленный вариант вашего кода:
```cpp // laba4_2.cpp : Defines the entry point for the console application. #include "stdafx.h" #include "stdio.h" #include "math.h" using namespace std; int main () { float *a; int i,n; printf("n="); scanf("%i",&n); a = new float[n]; // use new instead of malloc for (i=0; i<=n-1;i++) { printf("a[%i]=",i); scanf("%f",&a[i]); // use %f instead of %i for float } for (i=0; i<=n-1; i++) { if (a[i]<0) { printf("oshibka\n"); } else { if (a[i] % 2 == 0) // use % instead of / for evenness check { printf("chetnoe\n"); } else { printf("nechetnoe\n"); } } } delete[] a; // free the memory allocated by new return 1; } ```
Если вы хотите узнать больше о динамических массивах в C++, вы можете посмотреть эти ресурсы: [Memory Error thrown while trying to create dynamic arrays in C++](https://stackoverflow.com/questions/59132009/memory-error-thrown-while-trying-to-create-dynamic-arrays-in-c), [Dynamic Array C++ not working right](https://stackoverflow.com/questions/25442928/dynamic-array-c-not-working-right), [Segmentation Fault in C/C++](https://www.geeksforgeeks.org/segmentation-fault-c-cpp/). Надеюсь, это поможет вам. Удачи!


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili