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

Разница между определением переменной до и непосредственно в самой инструкции for - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработка рекурсивной функции для перевода числа из десятичной сс в двоичную http://www.cyberforum.ru/cpp-beginners/thread642173.html
На уроке преподаватель не объясняет как решать. Задачи берутся из "Основы программирования на языке С++" часть 2 Огнева М.В., Кудрина Е.В. Помогите, пожалуйста Разработка рекурсивной функции, возвращающую значение 1. Для перевода числа из десятичной сс в двоичную.
C++ dll и h У меня есть определенные функции, которые я хочу занести в файл. Будет ли какая нибудь разница между использование dll и h ???? http://www.cyberforum.ru/cpp-beginners/thread642166.html
C++ Освобождение памяти
Есть многопоточное приложение. Создается глобальная структура: Пример из msdn. typedef struct _MyData { int val1; TStringList* strlist; } MYDATA, *PMYDATA;
win32 project C++
Помогите мне разобрать в этих двух наименованиях: win32 project win32 console aplication Просто не могу понять разницу?
C++ [STL] Работа со std::string http://www.cyberforum.ru/cpp-beginners/thread642113.html
Привет, форум. Подскажите, как можно грамотно скопировать "слово" из строки, с указанием начала и конца позиций. Например: string str = "My name is Vendetta"; string str name; нужно грамотно, методом STL, скопировать буквы с 12 по 19. То-есть, слово Vendetta присвоить к name. Заранее спасибо, может чуть позже ещё будут вопросы на эту тему.
C++ Структура о веществе и сортировка Пишу структуру, описывающую информацию о веществе: название, удельный вес и проводимость(проводник, полупроводник, изолятор). Написать функции ввода и вывода; для сортировки данных по любому из признаков. Сделала с меню. Знаю что ошибка в выводе, при ее исправлении не работает. Также не могу разобраться с сортировкой, пыталась написать сортировку по весу. //main #include <stdio.h>... подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
24.08.2012, 20:26     Разница между определением переменной до и непосредственно в самой инструкции for
Если провести инициализацию переменной до инструкции for, программа работает корректно, а если в самой инструкции то получается ошибка при вычислении.

Вот "правильный" код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Программа запрашивает у пользователя два числа:                              
// основание и степень (предполагается, что степень                             
// имеет положительное значение).                                               
// И произодит вычисления                                                       
#include <iostream>
 
int main()
{
  double base, a, i;
  double k = 1; // инициализируем счётчик k до инструкции for                   
  std::cout << "Введите, пожалуйста, число: ";
  std::cin >> base;
  std::cout << "Введите, пожалуйста, степень: ";
  std::cin >> a;
  std::cout << std::endl;
  for (i = base; k < a; ++k)
    i *= base;
  std::cout << base << " в степени " << a
          << " равно " << i << std::endl;
 return 0;
}
Если ввести числа 2, 10, то результат будет 1024

"неправильный" код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Программа запрашивает у пользователя два числа:                              
// основание и степень (предполагается, что степень                             
// имеет положительное значение).                                               
// И произодит вычисления                                                       
#include <iostream>
 
int main()
{
  double base, a, i;
  std::cout << "Введите, пожалуйста, число: ";
  std::cin >> base;
  std::cout << "Введите, пожалуйста, степень: ";
  std::cin >> a;
  std::cout << std::endl;
  for (double k = 1, i = base; k < a; ++k)
    i *= base;
  std::cout << base << " в степени " << a
          << " равно " << i << std::endl;
 return 0;
}
результат вычисления любых двух значений выглядит так: -2.73209e-39
Я предполагаю, что инициализируется заново также оба операнда i и base типом double, что приводит к ошибке. Хотя возможно я ошибаюсь. Господа, нужна ваша точка зрения )).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru