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

Не вызывается нужный элемент массива по значению управляющей переменной в цикле for - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Супер-быстрый перебор http://www.cyberforum.ru/cpp-beginners/thread628258.html
Используя минимальное количество библиотек(Вместо iostream - stdio.h) сделать рекурсивный перебор: Найти количество N-значных натуральных чисел, сумма цифр у каждого из которых равняется M. N и M заданные натуральные числа. Технические условия Входные данные. В строке файла записаны значения N и M. (1<=N<=100, 1<=M<=900). Выходные данные.
C++ Конкурс(поиск простых чисел) Я тут подумал, посмотрел по теме Hello world'a как всем нравится находить изощренные способы.Так вот - задание на засыпку: написать программу, вычисляющую простые числа от 1 до 300000.Программа ДОЛЖНА работать за 6 секунд.Обьем памяти неограничен.За 6 сек должна работать на процессоре примерно таком - 2 ядра по 3.2 ггц каждое! Ну что, кто напишет?))) Кто напишет, тому спасибо поставлю) http://www.cyberforum.ru/cpp-beginners/thread628243.html
Переход на заданную строку C++
вот хочу считать последнюю строку из файла такием раком fstream str("base.txt",ios_base::in|ios_base::out); str.seekp(0, ios::end); char* words; str >> words; str >> words; str >> words; cout << words;
C++ Вывести на экран значение элемента...
Работа с квадратными массивами В задаче рассматривается двумерный массив с одинаковым количеством строк и столбцов; такой массив называют квадратным. Задача: Известен номер столбца, на котором расположен элемент побочной диагонали квадратного массива. Вывести на экран значение этого элемента.
C++ Найти все десятизначные числа с неповторяющимися цифрами, при делении которых на 9 получается симметричное частное http://www.cyberforum.ru/cpp-beginners/thread628204.html
Здравствуйте, друзья. Вот задача: Найти все десятизначные числа с неповторяющимися цифрами, при делении которых на 9 получается симметричное частное. Например: 4938271605 / 9 = 548696845 (таким же свойством обладают числа 2165904378/9=2406556042 или 2934815607/9=326090623 и др.) Вот код: #include <iostream> using namespace std; void main() { double Sc=1000000000, Otv;
C++ Какой заголовочный файл надо для функции ord() ? Всем привет... Тут такая напасть случилась забыл заголовочный файл(include <???>) для функции ord =) подробнее

Показать сообщение отдельно
koder
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 28
24.07.2012, 21:13     Не вызывается нужный элемент массива по значению управляющей переменной в цикле for
Вот часть кода :
C++
1
2
3
4
5
6
7
for(int i=0; i < 5; i++){
    cout << "Этот объект " <<
        shapes[i]->getName() << "\n";
    cout << "Площадь равна " <<
        shapes[i]->area() << "\n";
    cout << "\n";
    }
Проблема в том, что выполняется 5 итераций, но при этом вызывается всегда первый элемент массива.
Когда устанавливаю вручную цифру, то без проблем можно вывести любой элемент этого массива, но и если вывести в этом же цикле отдельно переменную i, а не как индекс массива, то выводятся числа от 0 до 4. Так почему же значения переменной i всегда 0 в индексе массива этого цикла? Не думаю, что проблема в другой части кода, так как подставив индекс в ручную все работает правильно, но на всякий случай вот весь код :
C++
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream> 
#include <cstring>
using namespace std;
class TwoDShape {
    double width;
    double height;
    char name[20];
public :
    TwoDShape () {
        width = height = 0.0;
        strcpy(name, "неизвестный");
    }
    TwoDShape(double w, double h, char *n) {
    width = w;
    height = h;
    strcpy(name, n);
    }
    TwoDShape(double x, char *n) {
    width = height = x;
    strcpy(name, n);
    }
    void showDim() {
    cout << "Ширина и высота равны " <<
        width << " и " << height << "\n";
    }
    double getWidth() { return width; }
    double getHeight() { return height; }
    void setWidth(double w) { width = w; }
    void setHeight(double h) { height = h; }
    char *getName() { return name; }
    virtual double area() {
    cout << "\nОшибка: функцию агеа() нужно переопределить.\n";
    return 0.0;
    }
};
class Triangle : public TwoDShape {
    char style[20];
public:
    Triangle () {
        strcpy(style, "неизвестный");
    }
    Triangle(char *str, double w,
        double h) : TwoDShape(w, h, "треугольник") {
            strcpy(style, str);
    }
    Triangle(double x) : TwoDShape(x, "треугольник") {
        strcpy(style, "равнобедренный");
    }
    double area() {
        return getWidth() * getHeight() / 2;
    }
    void showStyle() {
        cout << "Этот треугольник " << style << "\n";
    }
};
class Rectangle : public TwoDShape {
public:
    Rectangle(double w, double h) :
        TwoDShape(w, h, "прямоугольник") { }
    Rectangle(double x) :
        TwoDShape(x, "прямоугольник") { }
    bool isSquare() {
        if(getWidth() == getHeight()) return true;
    return false;
    }
    double area() {
        return getWidth() * getHeight();
    }
};
int main() 
{
    setlocale(LC_CTYPE, "Russian");
    TwoDShape *shapes[5];
    shapes[0] = &Triangle("прямоугольный", 8.0, 12.0);
    shapes[1] = &Rectangle(10);
    shapes[2] = &Rectangle(10, 4);
    shapes[3] = &Triangle(7.0);
    shapes[4] = &TwoDShape(10, 20, "общий");
    for(int i=0; i < 5; i++){
        cout << "Этот объект " <<
            shapes[i]->getName() << "\n";
        cout << "Площадь равна " <<
            shapes[i]->area() << "\n";
        cout << "\n";
    }
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru