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

Описать структуру с именем AEROFLOT содержащей поля: название пункта назначения рейса, номер рейса, тип самолета, - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Файловая оболочка http://www.cyberforum.ru/cpp-beginners/thread115753.html
Уважаемые товарищи,прошу помочь мне реализовать такой проект на языке C: Файловая оболочка. * Навигация по дереву каталогов. * Создание новых каталогов. * Уничтожение каталогов. * Копирование файлов. * Перемещение файлов.
C++ Необходимо переделать программу, чтобы в программе можно было вводить колличество итераций дана матрица найти её собственный вектор и собственное значение методом итерации - данная задача всё это выполняет только необходимо вводить количество итераций необходимо чтоб в программе можно было вводить количество итераций (сейчас они заданы как бы по умолчанию) вот сам пример задачи в http://************.com/files/x99itl7se #include<iostream.h> #include<math.h> ... http://www.cyberforum.ru/cpp-beginners/thread115751.html
C++ переделайте программу на шаблоны, связанную с массивом...
Задание: для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода, вывода массива и поменять местами столбцы по правилу: первый с последним, второй с препоследним и т.д. =) #include <iostream> using namespace std; template <typename X> X**creatArray (int &n, int &m) {cout<<”n=”; cin>>n; cout<<”m=”; cin>>m; X** a=new X*; for(int i=0; i<n; ++i) a=new X;
C++ Установить 0 в 5-м бите всех эл массива целых чисел с четным индексом и 1 - в 4-м бите всех нечетных эл массива.
Установить 0 в 5-м бите всех элементов массива целых чисел с четным индексом и 1 - в 4-м бите всех нечетных элементов массива. Определить сумму элементов полученного массива.
C++ цикл for http://www.cyberforum.ru/cpp-beginners/thread115731.html
как паскалевский цикл s=0; for i:=a to b do s:=s+i*i переделать в С??
C++ Нахождение всех перестановок #include <iostream> #include <string> using namespace std; int aton(char a) // преобразование символа в номер цифры { if ((a >= '0') && (a <= '9')) return a - '0'; else if ((a >= 'a') && (a <= 'z')) подробнее

Показать сообщение отдельно
Seishin
12 / 12 / 2
Регистрация: 15.04.2010
Сообщений: 31
16.04.2010, 00:03     Описать структуру с именем AEROFLOT содержащей поля: название пункта назначения рейса, номер рейса, тип самолета,
1.
C++
1
2
char buf[255];
strlen(buf);
Не стоит использовать функции, которые опираются на завершающий \0, применительно к
неинициализированному массиву, т.е. strlen возвращает тебе рандом, смотря когда встретит \0...

2.
Юзай MAX_PATH или какую-нить свою константу, назначение buf остается загадкой...

C++
1
k[i].namereice = new char[MAX_PATH];
Хотя не понятно какой смысл тут что-то ньюкать, можно и не парясь особо:

C++
1
2
3
4
5
6
struct AEROFLOT
{
    char namereice[MAX_PATH];
    int №somoleta;
    char tipsomoleta[MAX_PATH];
};
3.
Ну, пусть ньюкнули, дальше го...

C++
1
scanf_s("%s", k[i].namereice, [B]MAX_PATH[/B] );
есть же MSDN, там же сказано, что для спецификации %s нужно указывать размер буферов )...
И никаких & перед k[i].namereice - и так уже указатель на первый символ...

4.
C++
1
 strcpy(k[i].namereice,buf);
Это вообще без комментов, типо считали , а потом дайвайте затрем рандомом, который у нас в buf, так, на всякий случай ...
Удаляем...

5.
C++
1
2
3
4
5
6
7
for (i=0; i<7; i++)
        if (strcmp(k[i].namereice, k[i+1].namereice)>0)
        {
            strcpy (n.namereice, k[i+1].namereice);
            strcpy (k[i+1].namereice,k[i].namereice);
            strcpy (k[i].namereice, n.namereice);
        }
Сортировка тут у тя меняет местами имена мест назначения )), а вся остальная инфа остается на месте. Да и то, разовый проход отсортирует только частично

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool lChanges = true;
    while ( lChanges )
    {
        lChanges = false; 
        for (i=0; i<6; i++)
            if (strcmp(k[i].namereice, k[i+1].namereice)>0)
            {
                n = k[i];
                k[i] = k[i+1];
                k[i+1] = n;         
 
                lChanges = true;
            }  
    }
Так чуть более юзабельно, да, и в цикле на 1 меньше, ибо ты там внутри делаешь i+1...

6.
C++
1
2
t.tipsomoleta = new char [MAX_PATH];
        scanf_s("%s", t.tipsomoleta, MAX_PATH );
эти грабли уже прошли

7.
C++
1
2
3
4
5
6
7
8
9
10
bool lFoundRace = false;
        for (i=0; i<lCount; i++)
        {
            if ( strcmp( k[i].tipsomoleta, t.tipsomoleta) == 0 )
            {
                cout<< (k[i]);  
                lFoundRace = true;
            }           
        }
        if ( !lFoundRace ) printf("таких рейсов нет\t");
Дальше шли неюзабельные разные куски, которые пофасту превратились в это...

8.
ну, и на последок убираем всю эту кашу и больше никогда не юзаемммм

C++
1
2
3
4
5
6
7
for ( i = 0; i < 7; i++ )
        {
            delete[] k[i].namereice;
            delete[] k[i].tipsomoleta;
        }
 
delete[] t.tipsomoleta;
P.S. Все это естественно пишется совсем иначе
 
Текущее время: 19:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru