Почему у меня выдает ошибку в конце программы и как я ее решить? #define _CRT_SECURE_NO_WARNINGS
#include "conio.h"
#include "stdlib.h"
#include "locale.h"
#include "math.h"
#include <stdio.h>
void input(char name_array, int* kol_elementov)
{
do
{
printf("Введите размерность массива %c: ", name_array);
scanf("%d", kol_elementov);
} while ((*kol_elementov < 3) || (*kol_elementov > 100));
}
void proschet_array(float* ary, int N, float a, float b, float c)
{
for (int i = 0; i < N; i++)
ary[i] = a * (i + 1) + b * (i + 1) + c;
}
void output_array(char name, float* ary, int N)
{
printf("Массив %c: ", name);
for (int i = 0; i < N; i++)
printf("%6.2f ", ary[i]);
printf("\n");
}
void find_minimum(float* arr, int N, float* pmin) {
float min = 999999999;
for (int i = 0; i < N; i++)
if (min > fabs(arr[i]))
min = fabs(arr[i]);
*pmin = min;
}
int main()
{
setlocale(0, "RUS");
float G[100] = { 0 }, Z[100] = { 0 }, X[100] = { 0 }, P[100] = { 0 };
float R[4] = { 0 };
int сol_g = 0, сol_z = 0, сol_x = 0, сol_p = 0;
input('G', &сol_g);
input('Z', &сol_z);
input('X', &сol_x);
input('P', &сol_p);
proschet_array(&G[0], сol_g, 15.3, -16.9, 4.7);
proschet_array(&Z[0], сol_z, 8.8, -12.4, -5.9);
proschet_array(&X[0], сol_x, 6.7, 2.5, -18.6);
proschet_array(&P[0], сol_p, -11.6, 29.4, -8.2);
output_array('G', &G[0], сol_g);
output_array('Z', &Z[0], сol_z);
output_array('X', &X[0], сol_x);
output_array('P', &P[0], сol_p);
R[0] = find_minimum(&G[0], сol_g);
R[1] = find_minimum(&Z[0], сol_z);
R[2] = find_minimum(&X[0], сol_x);
R[3] = find_minimum(&P[0], сol_p);
output_array('R', &R[0], 4);
system("pause");
return 0;
}
C/C++
Язык Си. Помогите пожалуйста
#include
#include
#include
#define MIN (size_t)3
#define MAX (size_t)100
#define RESULT (size_t)4
size_t input(char* name, size_t min, size_t max) {
size_t value = 0;
do {
printf("Введите размерность массива %s: ", name);
scanf_s("%zu", &value);
} while (value < min || value > max);
return value;
}
void proschet_array(float* arr, size_t n, float a, float b, float c) {
size_t i = 0;
while (++i
В вашей программе есть несколько проблем:
1. В функции `void input(char name_array, int* kol_elementov)` вы передаете аргумент `name_array` как символ, но вместо этого он должен быть массивом символов или строкой. Исправьте его объявление на `char name_array[]`, чтобы передавать строку, представляющую имя массива.
2. В функции `void find_minimum(float* arr, int N, float* pmin)` вы используете функцию `fabs()`, которая требует подключения заголовочного файла `<math.h>`. Добавьте следующую строку перед функцией `main()`, чтобы включить соответствующее объявление: `#include <math.h>`
3. В функции `void find_minimum(float* arr, int N, float* pmin)` у вас отсутствует объявление переменной `i` в цикле. Измените объявление цикла на `for (int i = 0; i < N; i++)`.
4. В функции `void find_minimum(float* arr, int N, float* pmin)` у вас отсутствует возвращаемое значение, но в `main()` вы пытаетесь присвоить его элементам массива `R`. Измените объявление функции на `float find_minimum(float* arr, int N)` и добавьте оператор `return min;` в конце функции. Измените вызовы `find_minimum()` в `main()` соответственно.
5. В функции `output_array()` вы используете формат `%c` для печати символа, но передаете ей аргумент типа `char*`. Исправьте формат печати на `%s`, чтобы корректно выводить имя массива.
После внесения этих изменений ваш код должен выглядеть следующим образом:
```c
#define _CRT_SECURE_NO_WARNINGS
#include "conio.h"
#include "stdlib.h"
#include "locale.h"
#include <stdio.h>
#include <math.h>
void input(char name_array[], int* kol_elementov)
{
do
{
printf("Введите размерность массива %s: ", name_array);
scanf("%d", kol_elementov);
} while ((*kol_elementov < 3) || (*kol_elementov > 100));
}
void proschet_array(float* ary, int N, float a, float b, float c)
{
for (int i = 0; i < N; i++)
ary[i] = a * (i + 1) + b * (i + 1) + c;
}
void output_array(char name[], float* ary, int N)
{
printf("Массив %s: ", name);
for (int i = 0; i < N; i++)
printf("%6.2f ", ary[i]);
printf("\n");
}
float find_minimum(float* arr, int N)
{
float min = 999999999;
for (int i = 0; i < N; i++)
if (min > fabs(arr[i]))
min = fabs(arr[i]);
return min;
}
int main()
{
setlocale(0, "RUS
");
float G[100] = { 0 }, Z[100] = { 0 }, X[100] = { 0 }, P[100] = { 0 };
float R[4] = { 0 };
int сol_g = 0, сol_z = 0, сol_x = 0, сol_p = 0;
input("G", &сol_g);
input("Z", &сol_z);
input("X", &сol_x);
input("P", &сol_p);
proschet_array(&G[0], сol_g, 15.3, -16.9, 4.7);
proschet_array(&Z[0], сol_z, 8.8, -12.4, -5.9);
proschet_array(&X[0], сol_x, 6.7, 2.5, -18.6);
proschet_array(&P[0], сol_p, -11.6, 29.4, -8.2);
output_array("G", &G[0], сol_g);
output_array("Z", &Z[0], сol_z);
output_array("X", &X[0], сol_x);
output_array("P", &P[0], сol_p);
R[0] = find_minimum(&G[0], сol_g);
R[1] = find_minimum(&Z[0], сol_z);
R[2] = find_minimum(&X[0], сol_x);
R[3] = find_minimum(&P[0], сol_p);
output_array("R", &R[0], 4);
system("pause");
return 0;
}
```
Следуя этим рекомендациям, программа должна работать правильно и не должна выдавать ошибок в конце.
1. В функции `void input(char name_array, int* kol_elementov)` вы передаете аргумент `name_array` как символ, но вместо этого он должен быть массивом символов или строкой. Исправьте его объявление на `char name_array[]`, чтобы передавать строку, представляющую имя массива.
2. В функции `void find_minimum(float* arr, int N, float* pmin)` вы используете функцию `fabs()`, которая требует подключения заголовочного файла `<math.h>`. Добавьте следующую строку перед функцией `main()`, чтобы включить соответствующее объявление: `#include <math.h>`
3. В функции `void find_minimum(float* arr, int N, float* pmin)` у вас отсутствует объявление переменной `i` в цикле. Измените объявление цикла на `for (int i = 0; i < N; i++)`.
4. В функции `void find_minimum(float* arr, int N, float* pmin)` у вас отсутствует возвращаемое значение, но в `main()` вы пытаетесь присвоить его элементам массива `R`. Измените объявление функции на `float find_minimum(float* arr, int N)` и добавьте оператор `return min;` в конце функции. Измените вызовы `find_minimum()` в `main()` соответственно.
5. В функции `output_array()` вы используете формат `%c` для печати символа, но передаете ей аргумент типа `char*`. Исправьте формат печати на `%s`, чтобы корректно выводить имя массива.
После внесения этих изменений ваш код должен выглядеть следующим образом:
```c
#define _CRT_SECURE_NO_WARNINGS
#include "conio.h"
#include "stdlib.h"
#include "locale.h"
#include <stdio.h>
#include <math.h>
void input(char name_array[], int* kol_elementov)
{
do
{
printf("Введите размерность массива %s: ", name_array);
scanf("%d", kol_elementov);
} while ((*kol_elementov < 3) || (*kol_elementov > 100));
}
void proschet_array(float* ary, int N, float a, float b, float c)
{
for (int i = 0; i < N; i++)
ary[i] = a * (i + 1) + b * (i + 1) + c;
}
void output_array(char name[], float* ary, int N)
{
printf("Массив %s: ", name);
for (int i = 0; i < N; i++)
printf("%6.2f ", ary[i]);
printf("\n");
}
float find_minimum(float* arr, int N)
{
float min = 999999999;
for (int i = 0; i < N; i++)
if (min > fabs(arr[i]))
min = fabs(arr[i]);
return min;
}
int main()
{
setlocale(0, "RUS
");
float G[100] = { 0 }, Z[100] = { 0 }, X[100] = { 0 }, P[100] = { 0 };
float R[4] = { 0 };
int сol_g = 0, сol_z = 0, сol_x = 0, сol_p = 0;
input("G", &сol_g);
input("Z", &сol_z);
input("X", &сol_x);
input("P", &сol_p);
proschet_array(&G[0], сol_g, 15.3, -16.9, 4.7);
proschet_array(&Z[0], сol_z, 8.8, -12.4, -5.9);
proschet_array(&X[0], сol_x, 6.7, 2.5, -18.6);
proschet_array(&P[0], сol_p, -11.6, 29.4, -8.2);
output_array("G", &G[0], сol_g);
output_array("Z", &Z[0], сol_z);
output_array("X", &X[0], сol_x);
output_array("P", &P[0], сol_p);
R[0] = find_minimum(&G[0], сol_g);
R[1] = find_minimum(&Z[0], сol_z);
R[2] = find_minimum(&X[0], сol_x);
R[3] = find_minimum(&P[0], сol_p);
output_array("R", &R[0], 4);
system("pause");
return 0;
}
```
Следуя этим рекомендациям, программа должна работать правильно и не должна выдавать ошибок в конце.
void input(char name_array[], int* kol_elementov);
void proschet_array(float* ary, int N, float a, float b, float c);
void output_array(char name, float* ary, int N);
void find_minimum(float* arr, int N, float* pmi
n);
после внесения этих исправлений код должен работать
void proschet_array(float* ary, int N, float a, float b, float c);
void output_array(char name, float* ary, int N);
void find_minimum(float* arr, int N, float* pmi
n);
после внесения этих исправлений код должен работать
Error
Похожие вопросы
- Язык Си.помогите написать формулу пожалуйста
- Нужен код на Си помогите пожалуйста
- Модификация кода под язык ассемблера. Помогите, пожалуйста
- Помогите с решением задачи на языке СИ
- Помогите пожалуйста написать программу на Си
- Помогите с задачей на языке СИ
- Помогите добавить ввод чисел в массив матрицы на языке Си
- Помогите с 4 задачей на языке си
- Решить задачу на языке СИ
- Написать код на языке си
1) Аргумент передается как символ и печатается как символ.
2) "math.h" допускается на равне с <math.h>
3) Где там бот не увидел int i = 0 ?
4) Единственное угаданное место )
5) Он передает char (а не char*). У бота галлюцинации.
Итого - 1 правильный пункт из 5.