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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Zhenya777
1 / 1 / 0
Регистрация: 11.08.2009
Сообщений: 43
#1

Очень простой вопрос про циклы - C++

28.08.2009, 18:44. Просмотров 1801. Ответов 16

Всем привет!
Я только начал изучать с++. Меня интересует такой вопрос:
Как сделать цик чтобы к переменной i добавлялась переменная i(Надеюсь понятно =))
что то на подобие

C++
1
2
for (i=1;i<40;i++){
 i = i + i;
тоесть i = 2,4,8,16,32,64,125 ....
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2009, 18:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очень простой вопрос про циклы (C++):

Очень простой вопрос - C++
до смешного простой) как прервать выполнение ФУНКЦИИ в процессе работы программы? return 0; в этом случае не подходит т.к....

циклы вопрос - C++
Запишите цикл, который суммирует первые 100 натуральных чисел, каждый раз меняя знак числа: 1, -2, 3, -4 и т.д. : a) ...

Простой вопрос - C++
помогите, я вот только за си++ взялся, до этого на паскале писал... не понятно, что означает вот эта строка: int _tmain(int argc,...

простой вопрос по с++ - C++
О всемогущие! Помогите понять почему... Итак, есть простой класс (foo) и есть производный от него класс (newFoo). Вот их определения: ...

Простой вопрос - C++
Ребят вопросик не сложный. К примеру, у меня есть два числа (int a=32, b=45) Как сделать чтобы в переменную z записалось 3245....

Простой вопрос - C++
Условие: Программа считывает двузначное число и выводит через пробел каждую цифру отдельно. Помогите разобратся. Первый день учу...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
28.08.2009, 18:46 #2
Цитата Сообщение от Zhenya777 Посмотреть сообщение
Всем привет!
Я только начал изучать с++. Меня интересует такой вопрос:
Как сделать цик чтобы к переменной i добавлялась переменная i(Надеюсь понятно =))
что то на подобие

C++
1
2
for (i=1;i<40;i++){
 i = i + i;
тоесть i = 2,4,8,16,32,64,125 ....
вместо i++ написать i += i
0
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
28.08.2009, 18:50 #3
Zhenya777, вы умножение в школе проходили

i*=2;

только в цикле for строго не рекомендуется вручную менять переменную счета!!!
1
БурундукЪ
9540 / 2537 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
28.08.2009, 18:57 #4
кстати, даже бурундуки знают, что
64+64 != 125 ))) только 128
и еще, ваш цикл закончится уже после i=64
0
Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
28.08.2009, 19:09 #5
Тогда уже лучше так написать:
C++
1
2
3
for(i=1;i<0xFFFF;i<<=1){
//-----------------
}
Но тут надо аккуратней что бы переполнения не было, иначе в вечный цыкл уйдет
1
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
28.08.2009, 19:17 #6
Zhenya777,
C++
1
2
3
4
int i=1;
while(i!=128){
i=i*2;
}
1
БурундукЪ
9540 / 2537 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
28.08.2009, 19:20 #7
Цитата Сообщение от skvor Посмотреть сообщение
64+64 может быть равно 150
может 100% быть равно, но к сожалению, не в том числовом ряду
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
28.08.2009, 19:25 #8
Lolcht0, Mozart, МедведЪ, идет речь о сложении, а не умножении.
Хотя признаю, Mozart, предложил действительно самый быстрый способ
1
Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
28.08.2009, 19:34 #9
M128K145, Суть то не изменится, если крично именно сложение то у меня подобное компилируется:
C++
1
2
for(i=2;i<0xFFFF;i+=i){
}
1
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 22:02 #10
только в цикле for строго не рекомендуется вручную менять переменную счета!
Может и не рекомендуется, но можно.

Получить 30 первых чисел
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main( void ) {
 
int i, k;
i= 1;
for ( k= 1; k<=30; k++ ) {
       i*= 2;
       printf( "k=%d i=%d\n", k, i );
}
return 0;
 
} /* main() */
Вывод
Код
k=1 i=2
k=2 i=4
k=3 i=8
k=4 i=16
k=5 i=32
k=6 i=64
k=7 i=128
k=8 i=256
k=9 i=512
k=10 i=1024
k=11 i=2048
k=12 i=4096
k=13 i=8192
k=14 i=16384
k=15 i=32768
k=16 i=65536
k=17 i=131072
k=18 i=262144
k=19 i=524288
k=20 i=1048576
k=21 i=2097152
k=22 i=4194304
k=23 i=8388608
k=24 i=16777216
k=25 i=33554432
k=26 i=67108864
k=27 i=134217728
k=28 i=268435456
k=29 i=536870912
k=30 i=1073741824
Добавлено через 29 минут
Дальше будет переполнение - так как sizeof(int) == 32.
1
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
28.08.2009, 22:03 #11
odip, я говорю про такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main( void ) {
 
int i;
 
for ( i= 1; i<=30; i++ ) {
       i*= 2;
       printf( "i=%d\n", i );
}
return 0;
 
} /* main() */
1
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
28.08.2009, 22:10 #12
Zhenya777, аууууу! вопрос ясен, или будем предлагать еще варианты? их много!!!
1
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
28.08.2009, 22:25 #13
Цитата Сообщение от M128K145 Посмотреть сообщение
Хотя признаю, Mozart, предложил действительно самый быстрый способ
ну не факт, что компилятор сам не приведет к такому виду
0
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 22:41 #14
я говорю про такой код
Код ошибочен - ты увеличиваешь i на 1 и одновременно удваиваешь.
А нужно было только удваивать.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main( void ) {
 
int i;
 
for ( i= 1; i<=30; ) {
       i*= 2;
       printf( "i=%d\n", i );
}
return 0;
 
} /* main() */
0
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
29.08.2009, 01:12 #15
odip, ты посмотри на код в перовом посте и тогда, надеюсь, меня поймешь=))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2009, 01:12
Привет! Вот еще темы с ответами:

Супер простой вопрос - C++
есть например printf(&quot;%f &quot;,sum); как ограничить количество знаков после запятой в float? забыл и ни где найти не...

простой вопрос по файлам - C++
при оперировании файлами мне в коде программы приходится указывать точный путь к ним. Как мне быть, если я знаю только то, что файл в одной...

простой и глупый вопрос - C++
Да, вопрос немного глуповат, но в нете так ничего и не нашла. Либо просто вводила не то для поиска. Не знаю короче. Суть вопроса: У меня...

Самый простой вопрос на сегодня. - C++
Простейшая задача. Я думал справится за пару минут в купе с google, но что-то как-то не срослось =( Вспомнился этот форум. В общем,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.08.2009, 01:12
Ответ Создать тему
Опции темы

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