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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Inguldima
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 23
#1

Рапределение идндексов по элементам, независимо от значения переменной - C++

01.05.2012, 19:36. Просмотров 312. Ответов 2
Метки нет (Все метки)

вот часть кода программы:
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
void List::read()
{
    ifstream f1("rezult.txt");
    char s[255];
 char mas_s[50][255];
 char*f;
 int i,kol;
 kol = 1;
 
 while(!f1.eof())
 {
     f1.getline(s,255);
     f = strtok(s,";");
 while(f)
 {
  strcpy(mas_s[kol],f);
 kol++;
  f = strtok(0,";");
 }
 }
 kol=8;
 for(i=1;i<kol;i++)
 {
     if(i==1)List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
     else if(i==2)List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
 } 
 f1.close();
}
У меня всего 4 добаляемых элемента. Как сделать чтоб при любом значении kol оно рапределяло правильно идндексы по элементам? Я вот сделал для 2-записей,
C++
1
2
3
4
5
6
for(i=1;i<kol;i++) {
  if(i==1)
    List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
  else if(i==2)
    List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
 }
но нужна универсальная помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 19:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рапределение идндексов по элементам, независимо от значения переменной (C++):

Элементам массива меньше 10 присвоить нулевые значения, а элементам больше 20 присвоить 1 - Turbo Pascal
Одномерный массив из 8 элементов заполнить случайным образом числами от 6 до 30. Элементам массива меньше 10 присвоить нулевые значения,...

Независимо от платформы значения вычисляются неправильно - C Linux
Этот код #include &lt;stdio.h&gt; #define BUF 8192*16 int main(){ int t = 34572; printf(&quot;%d/%d =...

Присваивание элементам массива значение переменной в цикле do (Fortran 95) - Fortran
program Prog implicit none integer, allocatable :: Function(:) integer i,n real a,b,h,f print*, 'задайте диапазон x:' !от...

Как поменять значение числовой переменной в зависимости от значения текстовой переменной - JavaScript
Доброго вам времени суток! Ломаю голову на следующей задачей, и не знаю, где ошибка: может быть в JS или в html коде. Не могу...

VBS Вычислить значение переменной Y по одному из заданных выражений в зависимости от значения переменной X - VBScript/JScript
1)Для Вашего варианта таблицы 4.1 задайте в окне ввода значение переменной X с учетом заданного подтипа данных. При вводе маленьких или...

Как присвоить значение переменной, исходя из значения другой переменной? - C#
Всем привет. Нужна помощь. Есть переменная, например &quot;month&quot; которая может принимать значения от 01 до 12, и переменная...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cyberdiem
74 / 25 / 1
Регистрация: 15.02.2012
Сообщений: 97
01.05.2012, 20:26 #2
используй мультиусловие switch:

C++
1
2
3
4
5
6
7
8
switch(i){
case 1: List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
case 2: List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
case 3:
case 4:
/*и так далее*/
default: /*тут пиши любое рандомное действие, если уже перебрал все варианты, либо пиши действие, которое выполнится, если i не оказалось равным ни одному из case*/
}
Добавлено через 5 минут
либо можешь мучиться со вложенными условиями:

C++
1
2
3
4
if(i==1)List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
     else if(i==2)List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
                else if(i==3)List::add...
                          else if(i==4)List::add...
ну или просто кучу условий, у них же не обязательно else:
C++
1
2
3
if(i==1)List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
if(i==2)List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
if(i==3)List::add....
Но лучше switch используй, он как раз для таких случаев, ибо набор операторов сравнения или вложенные сравнения дольше работают (если искомое условие "глубже"), чем switch.
Inguldima
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 23
01.05.2012, 22:08  [ТС] #3
Спасибо буду что-то пробывать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2012, 22:08
Привет! Вот еще темы с ответами:

Изменение значения переменной, название которой находится в текстовой переменной - Python
Подскажите как мне сделать: у меня есть цикл _0_gray = 1 for i in range(9): peremen = &quot;_&quot; + str(i) + &quot;_gray&quot;\ peremen = 2 ...

Передача значения переменной одной формы в описание переменной другой - Delphi
Всем привет. Не могу найти решение проблемы. На первой форме имеется глобальная переменная kol, которая содержит в себе число. на второй...

.NET 2.x Присвоение значения одной переменной значению другой переменной - Visual Basic .NET
Здравствуйте! При загрузке приложение считывает значения узлов в xml файле (например, IDa=&quot;IDa2&quot;, IDb=&quot;IDb1&quot;). Эти значения...

Возможно ли обращение к переменной с использованием значения строковой переменной? - C++ Builder
Есть структура из 20ти различных элементов. Необходимо сформировать строковую переменную, которая бы содержала названия переменных и их...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru