Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
1 / 1 / 1
Регистрация: 11.08.2009
Сообщений: 43

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

28.08.2009, 18:44. Показов 2492. Ответов 16

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

C++
1
2
for (i=1;i<40;i++){
 i = i + i;
тоесть i = 2,4,8,16,32,64,125 ....
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2009, 18:44
Ответы с готовыми решениями:

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

Очень простой вопрос о БД
Друзья, вопрос следующий. Какую локальную БД выбрать для работы с массивом из 10000 строк? Поясню суть проблемы. Например работаю я с...

Очень простой вопрос
Помогите плз с задачей, Я ее зделал но значения выводятся не через пробел а вместе (не 1 6 а 16), в чом может быть проблема?

16
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
28.08.2009, 18:46
Цитата Сообщение от 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
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
28.08.2009, 18:50
Zhenya777, вы умножение в школе проходили

i*=2;

только в цикле for строго не рекомендуется вручную менять переменную счета!!!
1
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
28.08.2009, 18:57
кстати, даже бурундуки знают, что
64+64 != 125 ))) только 128
и еще, ваш цикл закончится уже после i=64
0
 Аватар для Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
28.08.2009, 19:09
Тогда уже лучше так написать:
C++
1
2
3
for(i=1;i<0xFFFF;i<<=1){
//-----------------
}
Но тут надо аккуратней что бы переполнения не было, иначе в вечный цыкл уйдет
1
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
28.08.2009, 19:17
Zhenya777,
C++
1
2
3
4
int i=1;
while(i!=128){
i=i*2;
}
1
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
28.08.2009, 19:20
Цитата Сообщение от skvor Посмотреть сообщение
64+64 может быть равно 150
может 100% быть равно, но к сожалению, не в том числовом ряду
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
28.08.2009, 19:25
Lolcht0, Mozart, МедведЪ, идет речь о сложении, а не умножении.
Хотя признаю, Mozart, предложил действительно самый быстрый способ
1
 Аватар для Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
28.08.2009, 19:34
M128K145, Суть то не изменится, если крично именно сложение то у меня подобное компилируется:
C++
1
2
for(i=2;i<0xFFFF;i+=i){
}
1
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 22:02
только в цикле 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() */
Вывод
Code
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
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
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
28.08.2009, 22:03
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
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
28.08.2009, 22:10
Zhenya777, аууууу! вопрос ясен, или будем предлагать еще варианты? их много!!!
1
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
28.08.2009, 22:25
Цитата Сообщение от M128K145 Посмотреть сообщение
Хотя признаю, Mozart, предложил действительно самый быстрый способ
ну не факт, что компилятор сам не приведет к такому виду
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 22:41
я говорю про такой код
Код ошибочен - ты увеличиваешь 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
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
29.08.2009, 01:12
odip, ты посмотри на код в перовом посте и тогда, надеюсь, меня поймешь=))
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
29.08.2009, 05:00
По сути программа призвана степени двойки выводить. Вот так по-моему проще:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <limits.h>
 
/* степени двойки */
 
int main(){
    int i;
    
    for ( i = 0; i < sizeof(int) * CHAR_BIT; i++ )
        printf("2^%d = %u\n", i, 1 << i);
    
    return(0);
}
0
1 / 1 / 1
Регистрация: 11.08.2009
Сообщений: 43
29.08.2009, 10:30  [ТС]
Да все ясно!!! Всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2009, 10:30
Помогаю со студенческими работами здесь

Очень простой вопрос.
Друзья, есть ли такая системная переменная в АСП, которая возвращает текущий адрес веб-страницы со всеми параметрами? Например, для...

Очень простой вопрос
Здравствуйте. Подскажите пожалуйста, почему это не работает- use sample; GO ALTER DATABASE TEMPORARYS REMOVE FILE...

Очень простой вопрос по Word
Подскажите, пожалуйста, в чем может быть причина: необходимо распечатать определенную страницу из файла, содержащего 715 страниц. Все...

Простой вопрос про h1
Уважаемые коллеги! Я практически всегда вывожу название сайта в h1, а дальше вывожу остальные заголовки, исходя из того, что h1 уже...

Очень простой вопрос: не работает сессия
этот скрипт работает ... &lt;? session_start(); if($_SESSION) { echo 'Дата последнего посещения: '; echo date('j F Y,...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru