Не правильно массив создается. Нужно чтобы было 30 элементов. Найти в общем максимум и минимум и найти их разность. Но самое главное массив не создается корректно.
#include
#include
#include
#define use_CRT_SECURE_NO_WARNINGS
using namespace std;
void main()
{setlocale(0, "");
FILE * pfile;
int xmin, xmax, s;
srand(static_cast (time(NULL)));
int n = rand() % 91 + 10;
//const int n = 30;
int i = 0;
//double a[n];
FILE * f;
fopen_s( &f, "data.txt", "w");
if(f == NULL)
{
printf("Ошибка!!! ");
system("pause");
return;
}
int * a = new int[n];
for (i = 0; i < n; i++)
a[i] = rand()%500 - 100;
{
printf ("Массив: \n\n");
printf ("%7i", a[i]);
}
Другие языки программирования и технологии
Не могу найти ошибку в коде с++
- если надо 30 элементов, то почему строка присвоения закомментирована (заменена на чудное случайное число)?
- не вижу команды записи в файл
- создаётся впечатление, что это произвольно взятый где-то текст, не ваш код. Здесь нет поиска оптимумов и тем более нет их разности
- не вижу команды записи в файл
- создаётся впечатление, что это произвольно взятый где-то текст, не ваш код. Здесь нет поиска оптимумов и тем более нет их разности
#include <iostream>
#include <random>
#include <utility>
#include <algorithm>
using namespace std;
int randomize(int left = 1, int right = 100);
int main() {
const size_t size = 30;
int arr[size];
for (auto i = 0; i < size; ++i) arr[i] = randomize();
for (auto i : arr) cout << ' ' << i;
pair<int*, int*> mm = minmax_element(arr, arr + size);
cout << "\n Max element = " << *mm.second
<< "\n Mim element = " << *mm.first
<< "\n Difference = " << *mm.second - *mm.first << endl;
cin.get();
}
int randomize(int left, int right) {
if (left > right) swap(left, right);
uniform_int_distribution<int> rand(left, right);
random_device rnd;
return rand(rnd);
}
#include <random>
#include <utility>
#include <algorithm>
using namespace std;
int randomize(int left = 1, int right = 100);
int main() {
const size_t size = 30;
int arr[size];
for (auto i = 0; i < size; ++i) arr[i] = randomize();
for (auto i : arr) cout << ' ' << i;
pair<int*, int*> mm = minmax_element(arr, arr + size);
cout << "\n Max element = " << *mm.second
<< "\n Mim element = " << *mm.first
<< "\n Difference = " << *mm.second - *mm.first << endl;
cin.get();
}
int randomize(int left, int right) {
if (left > right) swap(left, right);
uniform_int_distribution<int> rand(left, right);
random_device rnd;
return rand(rnd);
}
запусти под отладчиком и разбирайся.
Если нужно 30, то почему n = rand() % 91 + 10, а n = 30 закоментировано?
Поиска максимума и минимума вообще не вижу
Зачем открывается файл, но не используется?
Программный код лучше размещать тут http://pastebin.com/ , здесь теряется часть текста
Если нужно 30, то почему n = rand() % 91 + 10, а n = 30 закоментировано?
Поиска максимума и минимума вообще не вижу
Зачем открывается файл, но не используется?
Программный код лучше размещать тут http://pastebin.com/ , здесь теряется часть текста
Вот тут происходит не то, что вы думаете. Массив создается, но НЕ выводится. Вернее, выводится ОДИН элемент. Причина- неправильное использование скобок{}.
int * a = new int[n];
for (i = 0; i < n; i++)
a[i] = rand()%500 - 100;
{
printf ("Массив: \n\n");
printf ("%7i", a[i]);
}
int * a = new int[n];
for (i = 0; i < n; i++)
a[i] = rand()%500 - 100;
{
printf ("Массив: \n\n");
printf ("%7i", a[i]);
}
А ребята можете сказать где массив??
class TestArraysClass
{
static void Main()
{
// Declare a single-dimensional array
int[] array1 = new int[5];
// Declare and set array element values
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
// Alternative syntax
int[] array3 = { 1, 2, 3, 4, 5, 6 };
// Declare a two dimensional array
int[,] multiDimensionalArray1 = new int[2, 3];
// Declare and set array element values
int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
// Declare a jagged array
int[][] jaggedArray = new int[6][];
// Set the values of the first array in the jagged array structure
jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
}
}
Где приблизительно объявление массива в коде?
class TestArraysClass
{
static void Main()
{
// Declare a single-dimensional array
int[] array1 = new int[5];
// Declare and set array element values
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
// Alternative syntax
int[] array3 = { 1, 2, 3, 4, 5, 6 };
// Declare a two dimensional array
int[,] multiDimensionalArray1 = new int[2, 3];
// Declare and set array element values
int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
// Declare a jagged array
int[][] jaggedArray = new int[6][];
// Set the values of the first array in the jagged array structure
jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
}
}
Где приблизительно объявление массива в коде?
Саят Айтанов
Для того чтобы задать вопрос существуют несколько иные методы чем писать его в ответ к чужому вопросу.
Kamran Ismayilov
Узнай название языка, на котором это написано, и найди книгу по этому языку, и почитай
Женя Горячев
Я о том что тот код что предоставил автор вопроса я в коде объявления массива так и не увидел. и скинул пример где разными методами он объявляется.
Похожие вопросы
- помогите найти ошибку в коде на Си
- Помогите найти ошибку в коде
- Помогите найти ошибку в коде. делфи
- Помогите найти ошибку в коде с++. Скорее всего ошибка в сравнении строк.
- Помогите найти ошибки в коде (паскаль)
- помогите найти ошибку в коде VBA exel !
- (PASCAL)помогите найти ошибку в коде задачи, и исправить
- помогите найти ошибку в коде. ПАскаль
- Найти ошибки в коде. Язык си
- Помогите, пожалуйста, найти ошибки в коде. Нужно выбрать из массива минимальное значение и вывести индексы его позиции.
#include
#include
#define use_CRT_SECURE_NO_WARNINGS
using namespace std;
void main()
{setlocale(0, "");
FILE * pfile;
int xmin, xmax, s;
const int n = 30;
int i = 0;
double a[n];
srand(static_cast (time(NULL)));
FILE * f;
fopen_s( &f, "data.txt", "w");
if(f == NULL)
{
printf("Ошибка!!! ");
system("pause");
return;
}
printf("Массив: ");
for (i = 0; i < n; i++){
a[i] = rand()%500 - 100;
printf ("\n%.f", a[i]);
}
xmin = 0;
for (i = 0; i < n; i++)
if (a[i] < xmin)
xmin= a[i];
xmax = 0;
for (i = 0; i < n; i++)
if (a[i] > xmax)
xmax = a[i];
s = xmax - xmin;
printf ("\nМаксимум: ");
printf("%i", xmax);
printf ("\nМинимум: ");
printf("%i", xmin);
printf ("\nРазность: \n" );
printf ("% i", s);
printf ("\n");
fclose(f);
system ("pause");
ret..