Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
doctorclo
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
#1

Мое знакомство с циклами в С++ - C++

10.12.2011, 21:06. Просмотров 1747. Ответов 38
Метки нет (Все метки)

Доброго времени суток! Свое знакомства с языками начал с Pascal , достаточно неплохо там освоился, вот теперь решил попробовать себя на СИ . и у меня уже серьезные проблемы с синтаксисом. Пока никак не могу перестроиться. Вот например возьмем синтаксис цикла. кусок моей ознакомительной, бесполезной программы, которая по причине моей криворукости не компилируется
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
   int nord;
   char massiv[100];
    int k;
int main()
{
 
 while (nord<100)
 {
 if massiv [nord]<>"0"
 k=k+1;
 ++nord;
  }
 
system("PAUSE");
return 0;  
}
(написано на DEV-C++)
по моей идеи, она должна считать количество не нулей в массиве чаровском.
по моим представлениям о си, вместо привычного для меня бегина и энда в циклах си должны использоваться открывающиеся и закрывающиеся скобочки. А в условие IF нужно ли их использовать?
в многих мануалах видел такую штуку типа endl. Для чего она нужна, если есть скобочки? а синтаксис фора так же должен включать в себя скобочки? если не трудно, прошу растолковать мне как в СИ машина должна понимать начало и конец цикла или условия.
Заранее спасибо и извиняюсь если слишком глупый или часто задаваемый вопрос.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2011, 21:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Мое знакомство с циклами в С++ (C++):

Знакомство с функциями
Я новичок в программировании, работаю в среде Dev C++. Вот решила начать...

Знакомство со стеком
Начал изучать принципы работы стека вроде все понятно но не пойму как...

Знакомство с указателями. Синтаксическая ошибка.
Доброго дня! В качестве учебного пособия использую &quot;С++ для чайников&quot; Тема:...

Мое проклятие с vs
мне два года как не везет с компиляторами vs , (как говорится то ресет ,то...

Знакомство с классами, попытка реализации класса матриц
Собственно выдает следующую вещь &quot;Необработанное исключение в &quot;0x00411805&quot; в...

Знакомство с наследованием. Вызов конструктора базового класса
В инете немного почиатл про наследование и решил сразу перейти к практике Есть...

38
CrazyAngel
11 / 11 / 8
Регистрация: 01.12.2011
Сообщений: 33
10.12.2011, 21:25 #2
Цитата Сообщение от doctorclo Посмотреть сообщение
if massiv [nord]<>"0"
во-первых, вместо "<>" в Си используется "!="
во-вторых, условие massiv [nord]<>"0" нужно взять в круглые скобки
фигурные скобки в условии нужны, если у Вас несколько операций. Т.е. в данном примере они не нужны



Цитата Сообщение от doctorclo Посмотреть сообщение
синтаксис фора так же должен включать в себя скобочки?
опять же, скобки нужны если внутри цикла несколько операций
0
prazuber
110 / 110 / 13
Регистрация: 29.04.2010
Сообщений: 240
10.12.2011, 21:27 #3
Правильный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    char massiv[100];
    int i = 0;
    int count = 0;
 
    while (i < 100)
        if (massiv[i++] != '0')
            count++;
 
    return 0;
}
Читайте книги. Там ведь весь синтаксис описывается.
0
CrazyAngel
11 / 11 / 8
Регистрация: 01.12.2011
Сообщений: 33
10.12.2011, 21:27 #4
Только сейчас заметила, переменные нужно объявлять после int main(). Т.е.
C++
1
2
3
4
int main()
{
    int nord, k;
    char massiv[100];
И нужно задать начальное значение переменной nord
0
doctorclo
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
10.12.2011, 21:42  [ТС] #5
Большое спасибо!
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,211
Завершенные тесты: 3
10.12.2011, 21:44 #6
C
1
2
3
int i = 0, count = 0;
while (count += massiv[i++] != '0', i < 100);
/* (В каждой шутке есть доля шутки) */
1
Jupiter
10.12.2011, 21:48
  #7

Не по теме:

Цитата Сообщение от doctorclo Посмотреть сообщение
C
1
2
#include <iostream> 
#include <string>
doctorclo, в языке Си нет таких заголовков, вы пишите на С++

0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 22:00 #8
Цитата Сообщение от CrazyAngel Посмотреть сообщение
Только сейчас заметила, переменные нужно объявлять после int main().
Не обязательно, просто у ТС они глобальные и инициализируются нулями, в отличие от локальных переменных.
0
CrazyAngel
11 / 11 / 8
Регистрация: 01.12.2011
Сообщений: 33
10.12.2011, 22:23 #9
Thinker, правда? Не знала, спасибо, учту на будущее)
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 22:37 #10
Цитата Сообщение от CrazyAngel Посмотреть сообщение
Thinker, правда? Не знала, спасибо, учту на будущее)
Конечно, правда Только глобальными переменными не всегда удобно пользоваться, они всегда в памяти висят. Переменные бывают автоматическими, регистровыми, глобальными и статическими.
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
10.12.2011, 23:01 #11
Цитата Сообщение от Thinker Посмотреть сообщение
и статическими.
А статические не могут быть глобальные? Глобальные и локальные это их видимость, а все остально классы хранения (памяти)
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 23:03 #12
Цитата Сообщение от go Посмотреть сообщение
А статические не могут быть глобальные? Глобальные и локальные это их видимость, а все остально классы хранения (памяти)
Про классы памяти я и говорю) А статическими могут быть глобальными и локальными. При этом глобальные статические переменные видны только в исходном файле. Но то, что вы уточнили, это хорошо, а то бы и правда, могли меня не так понять.
0
fasked
Эксперт С++
4976 / 2556 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
10.12.2011, 23:06 #13
Цитата Сообщение от Thinker Посмотреть сообщение
При этом глобальные статические переменные видны только в исходном файле
В одной единице трансляции.
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 23:08 #14
Цитата Сообщение от fasked Посмотреть сообщение
В одной единице трансляции.

Не по теме:

Ну да-да, хватит придираться, не терминологичен я сегодня))

0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
10.12.2011, 23:09 #15
Цитата Сообщение от Thinker Посмотреть сообщение
А статическими могут быть глобальными и локальными.
А смысл в глобальных статических переменных? Как правило, это локальные.
0
CrazyAngel
11 / 11 / 8
Регистрация: 01.12.2011
Сообщений: 33
10.12.2011, 23:09 #16
Цитата Сообщение от Thinker Посмотреть сообщение
Переменные бывают автоматическими, регистровыми, глобальными и статическими.
Спасибо за разъяснение) Буду знать)
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 23:11 #17
Цитата Сообщение от go Посмотреть сообщение
А смысл в глобальных статических переменных? Как правило, это локальные.
Они отличаются от глобальных тем, что если вы пишите заголовочный файл (модуль), то они не видны там, где ваш модуль подключается, поэтому смысл есть и еще какой
0
doctorclo
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
11.12.2011, 16:16  [ТС] #18
Всем спасибо)
теперь буду знать
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
11.12.2011, 16:22 #19
Цитата Сообщение от doctorclo Посмотреть сообщение
и почему то нолик он не выводит
Выводит
C++
1
std::cout<<mas[2];
0
doctorclo
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
11.12.2011, 17:00  [ТС] #20
Можно еще вопросик?
как можно по-человечески в DEV-C++ посчитать длину строки? компилятор ругается на функцию str, даже если я подключил #include <string>. Не могли бы вы мне объяснить суть оператора str() и как в DEV-C++ можно нормально ввести строку и посчитать ее длину? вводить наверное через scanf
0
11.12.2011, 17:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2011, 17:00
Привет! Вот еще темы с решениями:

Мое видение вызова функции
main() { char *fun( int&amp;, int); int *x, y=11, z; char *s; x=new int...

Мое первое приложение. Начало. Любые компетентные советы
Здравствуйте, уважаемые пользователи, программисты. Моя работа, связанная с...

вот мое задание. Можете с ним помо*ь? Очень надо
В целочисленном массиве, сгенерированном случайным образом, найти наименьший из...

Проблема циклами
Приветствую форумчанин, помогите пожалуйста с задачкой. Нашел похожую на...


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

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

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