Вопрос задан 27.04.2019 в 17:55. Предмет Информатика. Спрашивает Найчук Дима.

помогите плиииз=))) у меня есть программа но вней 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;}
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Елфимов Евгений.

#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");
}

0 0
Отвечает Филипенко Женя.

Я так понимаю, что вы хотели в программе проверить числа на четность/нечетность, но программа по вашему коду этого не сделает.

 

В таком виде должно быть без ошибок, но работает по-прежнему неверно:

 

#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;
}

 

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Я могу помочь вам с вашим кодом на 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/). Надеюсь, это поможет вам. Удачи!

0 0

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

Последние заданные вопросы в категории Информатика

Задать вопрос