Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 35
1

Заменить cout и cin на printf и scanf

24.09.2016, 13:45. Показов 1605. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <iostream>
using namespace std;
 
struct elem
{ 
  int info; // данные
  elem *next; // указатель на следующий элемент
};
 
elem *first=NULL; // указатель на начало списка
 
// добавляет элемент в список с учетом сортировки
void add_sort(int data)
{
  if (first==NULL)              // проверяем существует ли список
  {                             // если нет
    first=new (elem);           // выделяем память для элемента списка
    first->info=data;           // записываем в поле info данные
    first->next=first;          // указатель на следующий элемент = first
  }                             // first теперь указывает на первый элемент
  else                          // списка
  {                             // если список уже существует
    if (data < first->info)     // если элемент нужно вставить в начало
    {
      elem *adr,*adr1;          // объявляем вспомогательныe указатели
      adr1=first;               // записываем в adr адрес первого элемента
      while (adr1->next!=first) // до тех пор пока поле next по адресу adr
        adr1=adr1->next;        // переходим к следующему полю списка
      adr=new(elem);             // выделяем память для элемента списка
      adr->next=first;           // next нового элемента направляем на старый first
      first=adr;                 // переходим к новому элементу списку (новый first)
      first->info=data;          // записываем в поле info данные
      adr1->next=first;
    }
    else
    {
      elem *adr,*adr1;            // объявляем вспомогательные указатели
      adr=first;                  // записываем в adr адрес первого элемента
      while(adr->next!=first)     // до тех пор пока поле next по адресу adr
      {                           // не содержит first
        if (data < adr->next->info) // если data меньше adr->next->info
          break;                  // выходим из цикла
        adr=adr->next;            // переходим к следующему полю списка
      }
      // adr теперь указывает на элемент, после которого нужно вставить новый
 
      adr1=adr->next;           // запоминаем адрес элемента, следующего за вставляемым
      adr->next=new(elem);      // выделяем память для нового элемента списка
      adr=adr->next;            // переходим к новому элементу списку
      adr->info=data;           // записываем в поле info данные
      adr->next=adr1;           // указатель на следующий элемент = адрес следующего за вставляемым
    }
  }
}
 
// выводит список на экран
void print()
{
  if (first==NULL)              // проверяем существует ли список
  {                             // если нет
    cout << "Список пустой";
  }
  else
  {                             // если список уже существует
    elem *adr;                  // объявляем вспомогательный указатель
    adr=first;                  // записываем в adr адрес первого элемента
    while(adr->next != first)   // до тех пор пока поле next по адресу adr
    {                           // не равно first
      cout << adr->info << " "; // выводим на экран данные из поля info
      adr=adr->next;            // переходим к следующему полю списка
    }
    cout << adr->info << " ";   // выводим на экран данные из поля info последнего элемента
  }
  cout << endl;
}
 
// удаляет элемент из списка
void del(int data)
{
  if (first==NULL) return;            // если список не существует, выходим из функции
  elem *adr,*adr1;                    // объявляем вспомогательные указатели
  adr=first;                          // записываем в adr адрес первого элемента
  if (adr->info==data)                // если искомое поле находится в начале
  {                                   // списка, то
    adr1=first;                       // начиная с начала списка
    while (adr1->next!=first)         // в цикле 
      adr1=adr1->next;                // смещаемся к последнему элементу
    if (first==adr->next)             // если это единственный элемент в списке
    {
      first = NULL;                   // обнуляем указатель на начало списка
    }
    else                              // иначе
    {
      first=adr->next;                // записываем в first адрес следующего эл-а
      adr1->next=first;               // next последнего перенаправляем на новый first
    }
    delete adr;                       // удаляем первый элемент из памяти
  }
  else                                // если искомое поле находится не в начале
  {                                   // списка
    if (adr->next == first) return;   // если искать больше негде, то выходим из функции
    while(adr->next->info!=data)      // перебираем элементы списка до тех пор
    {                                 // пока adr->next->info не будет равно data
      adr=adr->next;                  // переходим к следующему полю списка
      if (adr->next == first) return; // если ничего не нашли, то выходим из функции
    }
    adr1=adr->next;                   // запоминаем адрес удаляемого элемента
    adr->next=adr->next->next;        // перезаписываем указатели
    delete adr1;                      // удаляем требуемый элемент
  }
}
 
int main()
{
  setlocale(LC_CTYPE, "russian_Russia.1251"); // для корректного вывода кириллицы на экран
  int v, a;
  while (1)
  {
    cout << "Сделайте выбор:" << endl;
    cout << "1 - добавление элементов" << endl;
    cout << "2 - просмотр содержимого" << endl;
    cout << "3 - удаление элементов" << endl;
    cout << "0 - выход" << endl;
    cin >> v;
 
    switch (v)
    {
      case 1: 
        cout << "Введите число: ";
        cin >> a;
        add_sort(a); // добавление элементов
        break;
      case 2:
        print(); // просмотр содержимого
        system("pause");
        break;
      case 3:
        cout << "Введите число для удаления из списка: ";
        cin >> a;
        del(a); // удаление элементов
    }
    if (v == 0) break;
  }
  // system("pause");
  return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2016, 13:45
Ответы с готовыми решениями:

Заменить cout и cin на printf и scanf
#include&lt;stdio.h&gt; #include&lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstdlib&gt; using namespace...

Поменять cin cout на printf scanf
#include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;iostream&gt; using namespace std; int main() {...

Замените пожалуйста cin, cout на scanf, printf
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;cstdio&gt; using namespace std; int TMP(int Value,...

Пояснить суть printf, scanf, cout и cin
я хочу понять cout и cin на printf и scanf ! пример задача #include &quot;stdafx.h&quot; #include...

1
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
24.09.2016, 14:20 2
Лучший ответ Сообщение было отмечено Kristee как решение

Решение

Kristee, замените
C
1
cout << "Введите число для удаления из списка: ";
на
C
1
printf("Введите число для удаления из списка:");
все остальное по аналогии, если есть endl до добавляйте \n.
C
1
 cout << "Сделайте выбор:" << endl;
C
1
 printf("Сделайте выбор:\n");
C
1
cin >> a;
на
C
1
scanf("%d", &a);
Ну и #include <stdio.h> добавьте.
1
24.09.2016, 14:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2016, 14:20
Помогаю со студенческими работами здесь

Если вместо scanf() и printf() использовать cin и cout, то ничего не выводится
Доброго времени суток! Есть код #include &lt;stdio.h&gt; #include &lt;iostream&gt; int main () { int n,...

Не могу переделать код (использование printf и scanf вместо cout и cin)
Нужно сделать лабораторную работу по C, но у меня вообще ничего не получается с printf и scanf,...

Заменить cin / cout на scanf / printf
#include&lt;iostream&gt; #include&lt;locale.h&gt; #include&lt;Windows.h&gt; #include&lt;string&gt; #include &quot;123.h&quot;...

Cin и cout заменить на scanf и printf
Препод придрался к коду и требует, чтобы я cin и cout заменил на scanf и printf. Поможете? или хотя...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru