Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 37

Инициализация и вывод значений массива

17.09.2014, 18:25. Показов 871. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача(ликвидировать мое незнание )

Всем привет! Столкнулся с проблемой, давно у нас не было си,а теперь опять ввели.А я мало, что помню( забыл как о страшном сне).
Нужно решить задачу:
при 100 случайных значениях R решить задачу S=-M+Log(R) и вывести на экран 100 значений, если R=0 заново задать значения.Я создал массив из 10 чисел и посчитал, но блин выводится только 1 результат и как сделать условие я не знаю, помогите форумчане пожалуйста внизу мой г*но код с комментариями.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <cmath>
#include <cstdlib> /* srand, rand */
#include <time.h> /* time */
#include <stdlib.h>
using namespace std;
int Rnd()
{
//usl:
int R = 20;// 20 символов в массиве
short mas[R];
srand(time(NULL));// задать случайно эти числа
for (int i=0; i<R; i++) {
mas[i] = rand()%10;// числа в промежуте до 10
cout << mas[i] << " "<< endl;}
}
 
int main ()
{
double M,S,log;
cout<<"M="; //переменная M ввод с клавиатуры
cin>>M;
S=-M+log*Rnd(); //расчет S
cout<<"S="<<S << endl; //вывод на экран значения переменной S
//cout<<"Rnd="<<Rnd();// нафиг не надо
return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.09.2014, 18:25
Ответы с готовыми решениями:

Инициализация массива структур и форматированный вывод значений её членов
Я написал маленькую программу инициализации массива структур и форматированного вывода значений её членов, но, и инициализация происходит с...

Особенность инициализация значений массива через фигурные скобки
снова какая то лезгинка: никогда об этом не задумывался, просто помнил что количество элементов = n-1 индекс массива, может, что то я...

Вывод значений массива
Доброго времени суток, можете помочь разобрать данную часть кода, а конкретно, благодаря чему цифры выводятся в обратной последовательности...

8
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
17.09.2014, 19:46
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <cmath>
#include <ctime> 
using namespace std;
void Rnd(double* mas,int size)
{
      srand(time(NULL));// задать случайно эти числа
      for (int i=0; i<size; i++) 
              mas[i] = rand()%10;// числа в промежуте до 10
}
void Display(double* mas,int size)
{
      for (int i=0; i<size; i++) 
              cout << mas[i] << " ";
      cout<< endl;
}
int main ()
{
      double M;
      cout<<"M="; //переменная M ввод с клавиатуры
      cin>>M;
      double R[100];
      Rnd(R,100);
      cout<<"r=\n";
      Display(R,100)
      for(int i=0;i<100;i++)
          R[i]=-M+log(R[i]); //расчет S
      cout<<"Result:\n";
      Display(R,100);
      system("pause");
      return 0;
}
0
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 37
17.09.2014, 20:01  [ТС]
Может я и туплю, но я не нашел условия возвращения в начало задания чисел при r=0.
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
17.09.2014, 20:04
zss, Baac, предлагаю функцию Rnd(int* mas, int size) заменить на
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Rnd(int* mas,int size)
{
    srand(time(NULL));// задать случайно эти числа
    int *ptr;
    for (int i=0; i<size; i++) 
        mas[i] = rand()%10;// числа в промежуте до 10
    for (int i=0; i<size; i++)
    {
        if (mas[i] == 0)
        {
            ptr = &mas[i];
            Rnd(ptr, size-i-1);
        }
    }
}
0
И целого heap'а мало
 Аватар для Andrej
96 / 57 / 17
Регистрация: 31.07.2014
Сообщений: 291
17.09.2014, 20:23
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <stdexcept>
#include <cmath>
#include <cstdlib> /* srand, rand */
#include <time.h> /* time */
#include <stdlib.h>
 
struct NumbersPack {
public: /* методы */
    NumbersPack(std::size_t length, int range_end, int range_start = 0)
        : numbers (new int[ length ])
        , length (length)
    {
        for (std::size_t i = 0; i < this->length; ++i) { /* заполнить случайными */
            this->numbers[ i ] = range_start + std::rand() % range_end;
        }
    }
 
    ~NumbersPack()
    {
        delete [] this->numbers; /* подчистить память по завершении */
    }
 
public: /* поля */
    int* numbers;
    size_t length;
};
 
int
main()
{
    NumbersPack numbers_pack {100, 100500};
    double M;
    double S;
    std::cout << "Enter M: "; //переменная M ввод с клавиатуры
    std::cin >> M;
    for (std::size_t i = 0; i < numbers_pack.length; ++i) {
        S = -M + std::log(numbers_pack.numbers[ i ]); //расчет S
        std::cout << "S(" << numbers_pack.numbers[ i ] << ") = " << S << std::endl;
    }
    return 0;
}
Просто угорел по коду.
0
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 37
17.09.2014, 20:44  [ТС]
Может я и туплю, но я не нашел условия возвращения в начало задания чисел при r=0.
0
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
17.09.2014, 21:06
Если r=0 задавть нельзя, то замените строку
mas[i] = rand()%10;// числа в промежуте до 10
на
C++
1
 mas[i] = 1.0+rand()%9;// числа в промежуте до 10
0
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 37
18.09.2014, 10:10  [ТС]
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <cmath>
#include <ctime> 
using namespace std;
void Rnd(double* mas,int size)
{
      srand(time(NULL));// задать случайно эти числа
      for (int i=0; i<size; i++) 
              mas[i] = rand()%10;// числа в промежуте до 10
}
void Display(double* mas,int size)
{
      for (int i=0; i<size; i++) 
              cout << mas[i] << " ";
      cout<< endl;
}
int main ()
{
      double M;
      cout<<"M="; //переменная M ввод с клавиатуры
      cin>>M;
      double R[100];
      Rnd(R,100);
      cout<<"r=\n";
      Display(R,100)
      for(int i=0;i<100;i++)
          R[i]=-M+log(R[i]); //расчет S
      cout<<"Result:\n";
      Display(R,100);
      system("pause");
      return 0;
}
zss, Спасибо, но при компиляции данного кода возникает ошибка в codeblocks error 29 i was not declared in this scope
0
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
18.09.2014, 10:38
В Вашем коде ошибка в 25 строке
Display(R,100)
Нет точки с запятой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.09.2014, 10:38
Помогаю со студенческими работами здесь

Вывод значений массива
Работаю с openCV. Строю гистограмму для изображения: int histSize = 256; float range = {0, 256}; float *histRange =...

Вывод значений массива
Плюсы только изучаю, поэтому задаю такой вопрос: Программа заполняет дин. массив числами, каждое из которых возводит в степень к и...

Ввод/вывод значений элементов массива
Есть двумерный QVector &quot;mass&quot; Заполненный объектами класса &quot;МОЙ_КЛАСС&quot; и ограничен размерами n*n. Объекты класса &quot;МОЙ_КЛАСС&quot;...

инициализация значений
Всем привет! #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;windows.h&gt; #include&lt;math.h&gt; #include&lt;string&gt; class Money { ...

Вывод значений массива в виде таблицы в 5 столбцов
написал программу заполнения динамического массива случайными числами из интервала от -999 до 999 с использованием функции srand()....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru