Форум программистов, компьютерный форум CyberForum.ru

Одномерный массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка функций http://www.cyberforum.ru/cpp-beginners/thread104534.html
Здравствуйте ! Попробовал выполнить задание, но есть проблемы...Кто может проверит а ошибки... Задание: АДТ - одномерный массив (вектор) вещественных чисел. Дополнительно перегрузить след. операции: "+" - сложение векторов (a+b для всех i); "" - доступ по индексу; "+" - добавить число к вектору (double+vector) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Задание вроде как...
C++ Глупая ошибка в методе Якоби #include <math.h> #include <clocale> #include <stdio.h> #include <conio.h> #define eps 0.001 //желаемая точность #define N 10 int main( void ) { setlocale(LC_ALL, "Russian"); http://www.cyberforum.ru/cpp-beginners/thread104533.html
Код на паскале в с++ C++
Здраствуйте помогите пожалуйста перевести код из паскаля на с++... Program LAB1; uses crt; Procedure WriteByte(a:byte); var i:integer; begin for i:=7 downto 0 do begin if ((a shr i) and $01) <>0 then write('1') else write('0');
C++ и Excel C++
Ребят, кто-нибудь может подсказать: можно ли данные из С++ отправить в Excel? если можно, то каким образом это сделать?
C++ C2061 ошибка, не могу понять что не так http://www.cyberforum.ru/cpp-beginners/thread104517.html
Заголовочный файл: Forces.h #ifndef _FORCES_ #define _FORCES_ #include "ParticleSystem.h" // Абстрактный класс силы class Force { protected:
C++ сумма элементов сумма элементов всех последуещих чисел i-0 to i = 10 Вот пример:1 / i! *(1 / 2)^2i подробнее

Показать сообщение отдельно
System16v
 Аватар для System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
01.04.2015, 18:42     Одномерный массив
А почему з/п считается рандомно? .Мне кажется по заданию просилось чтоб ты ее сам вбивал,да и логичней так, зарплата ведь не может быть рандомной . Я вот написал код,где кол-во сотрудников не ограничено(образно).Т.е. создал просто большой массив,и количество сотрудников никогда не превысит размер массива(образно).Хотел сначала вообще чтоб размер определялся только после введения зарплат,но так не получилось,пришлось просто большой размер массива делать.Ну сделал чтоб зарплаты вводишь сам,в цикле с выходом "-1",ну и вывод на экран. В общем как понял задачу,так и реализовал (надеюсь правильно в плане реализации),выводит вроде всё правильно .Есть одна не понятка со счетом процентов(указал в комментариях кода),так не допер,почему он считает сумму на 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
 
int main()
{
   int sum=0,pr=0; // pr - счетчик подсчета количества продавцов
   const int size=100,size1=12;
   // 1ый массив для суммы продаж (изначально планровал любой,но т.к.
   // не получилось,пришлось ставить заведомо большое число которое будет всегда
   // больше,чем кол-во сотрудников. 2й массив для вывода кол-ва сотрудников
   int array[size]={0};
   int array1[size1]={0};
   while(sum!=-1)
     {
      cout << "Vvedite summy prodag prodavcov(-1 dlya vihoda): " ;
      cin >> sum;
      array[pr]=201+sum*0.09;  // не знаю почему,но пришлось добавить к 200
      // единицу,иначе считает на единицу меньше,так и не понял почему
      pr++;
     }
   cout << endl << endl;
   cout << "  Zarplata" << "  Kol-vo ch" << endl;
   cout << "--------------------------------" <<endl;
   for(int a=0;a<pr-1;a++)
   // pr-1 стоит потому,что если использовать просто pr,то в массив
   // прописывается лишнее значение "-1",использумое для выхода из цикла while
   {  // считаем какой элемент во 2ом массиве нужно увеличить
      if(array[a]/100<10)
          array1[array[a]/100]++;
      // если получаем индекс до 10ти,то увеличиваем тот элемент,
      // который получился,если больше 10ти,то увеличиваем только 10ый элемент
      // нужно это для того,чтоб если при расчете получается индекс более 10ти,
      // чтоб не вылезло за предел массива
      else if(array[a]/100>10)
          array1[10]++;
   }
   for(int b=0;b<size1-3;b++) // вывод на экран количество сотрудников
   // size-3 - потому что не используются первые 2 значения 0-99,100-199
      {
         if(b==0)
            cout << " 200$-299$: ";
         else if(b==8)
            cout << "Over 1000$: ";
         else
            cout << " " << (b*100)+200 << "$" << "-" << (b*100)+299 << "$: ";
      // array1[b+2] - потому,у нас не учитываются зарплаты 0-99$,100-199,и
      // нужный нам 1ый элемент находится на позиции array[2],а не array[0]
      // без использования +2,у нас вывод элементов был бы неправильным,
      // смещенным на 2 позиции влево. Отсюда и размерность 2го массива была
      // увеличена на 2,т.е. 12,а не 10
         cout << "\t" << array1[b+2];
         cout << endl;
      }
   cout << endl;
   system("pause");
   return 0;
}
Добавлено через 1 час 6 минут
Кстати заметил косяк...В 40вой строке надо условие изменить на
C++
1
 else if(array[a]/100>=10)
,а то не все значения входят.Ну и сообразил переделал 2й массив с размерностью 9,а не 12ть. В общем,вот доделанная
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
43
44
45
46
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
 
int main()
{
   int sum=0,pr=0;
   const int size=100,size1=9;
   int array[size]={0};
   int array1[size1]={0};
   while(sum!=-1)
     {
      cout << "Vvedite summy prodag prodavcov(-1 dlya vihoda): " ;
      cin >> sum;
      array[pr]=201+sum*0.09;
      pr++;
     }
   cout << "  Zarplata" << "  Kol-vo ch" << endl;
   cout << "--------------------------------" <<endl;
   for(int a=0;a<pr-1;a++)
   {
      if(array[a]/100<10)
          array1[(array[a]/100)-2]++;
      else if(array[a]/100>=10)
          array1[8]++;
   }
   for(int b=0;b<size1;b++)
      {
         if(b==0)
            cout << " 200$-299$: ";
         else if(b==8)
            cout << "Over 1000$: ";
         else
            cout << " " << (b*100)+200 << "$" << "-" << (b*100)+299 << "$: ";
         cout << "\t" << array1[b];
         cout << endl;
      }
   cout << endl;
   system("pause");
   return 0;
}
 
Текущее время: 00:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru