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

Исправление программы - C++

Восстановить пароль Регистрация
 
NEQ
Сообщений: n/a
16.06.2011, 12:48     Исправление программы #1
Простите мне что я такой неуч.
Мне написали программу, но с некоторым отличием от того что я знаю: строчки scanf и prrintf такого вида для мня совсем непонятны. Вот сама программа:#include <stdio.h>
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
89
90
#include <conio.h>
#include <iostream.h>
 
const n = 30; // максимальное количество элементов в списке
 
int main()
{
  clrscr(); // очищаем экран
  /* Структура для хранения одного элемента списка
     number - это число (информационная часть элемента списка)
     next - указатель на следующий элемент списка */
  struct inf {
    int number; // будем заполнять это поле всегда числом 0. нам оно не важно
    inf *next;
  };
 
  // указатель на первый элемент списка
  inf *first = NULL;
  // указатель на последний элемент списка
  inf *last = NULL;
  // указатель на текущий элемент списка
  inf *current;
 
  int k1, k2;
  printf << "Будет построен однонаправленный список из максимум " << n << 
    " элементов.\n";
  do {
    printf << "Введите номер элемента списка, который будет ссылаться на один " <<
      "из предыдущих элементов (или введите 0, если в списке нет кольца): ";
    scanf >> k1;
  } while (k1 < 0 || k1 > n); // цикл пока не введут правильный номер элемента
  if (k1 != 0)
    do {
      printf << "Введите номер одного из предыдущих элементов списка, на " <<
    "который будет ссылаться элемент списка с номером " << k1 << ": ";
      scanf >> k2;
    } while (k2 < 1 || k2 > k1); // цикл пока не введут правильный номер элемента
 
  int max; // количество элементов в списке
  if (k1 == 0)
    max = n; // если список без кольца, то построим его из n элементов
  else
    max = k1; // если список с кольцом, то построим его только из k1 элементов
  inf *k2Pointer; // указатель на элемент с номером k2
  for (int i = 1; i <= max; i++) { // строим в цикле весь список
    // создаем в памяти новый элемент списка
    current = new(inf);
    // заполняем элемент списка информацией
    current->number = 0; // заполним это поле нулем. все равно не используем
    current->next = NULL;
    // если список пока пустой
    if (first == NULL)
      first = current;
    else
      last->next = current;
    // последний элемент списка
    last = current;
    if (k1 != 0 && i == k2)
      k2Pointer = current; // сохраняем указатель на элемент с номером k2
  }
  if (k1 != 0)
    last->next = k2Pointer; // делаем кольцо
 
  printf << "\nПостроен однонаправленный список. Результат обхода этого списка:\n";
  current = first;
  i = 0;
  // пробежимся по всему списку
  while (current != NULL) {
    i++;
    current = current->next;
    inf *current2 = first; // пробежимся по списку еще раз с самого начала,
    int i2 = 1;            // чтобы проверить список на наличие кольца
    while (i2 <= i) {
      if (current == current2) { // если нашли кольцо
        printf << "В списке найдено кольцо " << i;
        for (int j = i2; j <= i; j++) // выводим кольцо на экран
          printf << "->" << j;
        goto quit; // переходим в конец программы
      }
      current2 = current2->next;
      i2++;
    }
  }
 
  printf << "В списке нет кольца";
 
quit:
  getch(); // ждем нажатия любой клавиши
  return 0;
}
Пожалуста, помогите мне исправить строки printf И scanf, чтобы они были со скобками

 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2011, 12:48     Исправление программы
Посмотрите здесь:

исправление ошибки C++
C++ Небольшое исправление
C++ Исправление ошибки
C++ Исправление ошибок
Исправление программы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.06.2011, 12:50     Исправление программы #2
Цитата Сообщение от NEQ Посмотреть сообщение
printf << "Будет построен однонаправленный список из максимум " << n <<
" элементов.\n";
что за бред!!! замениет все printf на cout, scanf на cin
NEQ
Сообщений: n/a
16.06.2011, 15:37     Исправление программы #3
Нет. Мне нужно, чтобы было именно printf и scanf
Aneron
 Аватар для Aneron
157 / 156 / 12
Регистрация: 20.04.2010
Сообщений: 570
16.06.2011, 16:50     Исправление программы #4
Цитата Сообщение от NEQ Посмотреть сообщение
Нет. Мне нужно, чтобы было именно printf и scanf
ну тогда
C++
1
printf("Будет построен однонаправленный список из максимум %d 'элементов\n",n);
C++
1
scanf >> k1;
заменяем на
C++
1
scanf("%d",&k1);
исправляете свои ошибки. смотрите описание функций
Yandex
Объявления
16.06.2011, 16:50     Исправление программы
Ответ Создать тему
Опции темы

Текущее время: 23:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru