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

Индекс первой точки в массиве - C++

Восстановить пароль Регистрация
 
anonimmm1
Сообщений: n/a
19.02.2011, 20:19     Индекс первой точки в массиве #1
условие проги:"Ввести символьный массив из 15-ти или меньшего количества элементов и найти индекс первой точки в этом массиве"
программа работает. в принципе со всем я разобрался. но одно условие не работает. необходимо найти индекс ПЕРВОЙ точки , а по умолчанию выдает индекс ПОСЛЕДНЕЙ точки. Как изменить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
{
const int N=15;
char massiv[N];
int inddot=0, t=Edit1->GetTextLen();
if (t>N) t=N;
Edit2->Clear();
for(int i=0;i<t;i++)
 {
 massiv[i]=Edit1->Text[i+1];
 if (massiv[i]=='.') inddot=i;
 }
Edit2->Text=IntToStr(inddot);
}
пробовал ставить условие на поиск минималного индекса элемента с точкой. но ничего не получается(.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
const int N=15;
char massiv[N];
int inddot=0, fi=0, t=Edit1->GetTextLen();
if (t>N) t=N;
Edit2->Clear();
for(int i=0;i<t;i++)
 {
 massiv[i]=Edit1->Text[i+1];
 if (massiv[i]=='.') inddot=i;
 }
if(inddot>fi) fi=inddot;
Edit2->Text=IntToStr(fi);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
19.02.2011, 21:17     Индекс первой точки в массиве #2
Наверно проще всего сделать 2 отдельных цикла.

C++
1
2
3
4
5
6
7
8
9
for(int i=0;i<t;i++)
    massiv[i]=Edit1->Text[i+1];
 
for(int i=0;i<t;i++)
     if (massiv[i]=='.') 
     {
           inddot=i;
           break;
     }
anonimmm1
Сообщений: n/a
19.02.2011, 22:00     Индекс первой точки в массиве #3
Цитата Сообщение от besstiaa Посмотреть сообщение
Наверно проще всего сделать 2 отдельных цикла.

C++
1
2
3
4
5
6
7
8
9
for(int i=0;i<t;i++)
    massiv[i]=Edit1->Text[i+1];
 
for(int i=0;i<t;i++)
     if (massiv[i]=='.') 
     {
           inddot=i;
           break;
     }
спасибо все пошло благодаря оператору break
C++
1
break;
Добавлено через 8 минут
Решено.
Окончательный код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
const int N=15;
int k=0,
massiv[N],
t=Edit1->GetTextLen();
if (t>N) t=N;
Edit2->Clear();
for(int i=0;i<t;i++)
massiv[i]=Edit1->Text[i+1];
for(int i=0;i<t;i++)
if(massiv[i]=='.')
   {
    k=i; break;
   }
Edit2->Text=IntToStr(k);
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
19.02.2011, 22:10     Индекс первой точки в массиве #4
C
1
2
3
#include <string.h>
...
printf("%d", strchr(str, '.') - str);
это, если не задаваться вопросом, есть ли в строке точка...
Yandex
Объявления
19.02.2011, 22:10     Индекс первой точки в массиве
Ответ Создать тему
Опции темы

Текущее время: 13:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru