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

Перевод из С++ в Си - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Классы, поинтеры и вызов функций http://www.cyberforum.ru/cpp-beginners/thread1311873.html
Всем пользователям форума привет, Помогите разобраться, что делают функции и последовательность вызова, как начинающему С++ программисту важно, чтоб вы помогли сначала объяснить как можно простыми словами, не используя заумных слов. Спасибо за ранее! test.cpp class A { public: virtual int Test() { return 1; } virtual int Test() const { return 11; }
C++ Ошибка при работе с функцией strlen #include <iostream> #include <cstring> using namespace std; int main(){ string a; int i,j; cout<<"Vvedite stroky \n"; cin>>a; http://www.cyberforum.ru/cpp-beginners/thread1311872.html
Нужно сделать блок-схемы для каждой функции C++
Массив А содержит значения 4-х параметров, измеряемых в течении 3 недель. Определить(и сохранить) среднее значение каждого параметра за весь период измерения. Определить неделю (1..3) ,в которой сумма отклонения 2-го параметра от средней величины была минимальна.
Данные цели числа b1 , b2 , . , b10 - C++
Данные цели числа b1 , b2 , ... , b10 - выяснить : а) верно , что сумма тех из них , которые больше 20. превышает 100; б) Верно ли, что сумма тех из них , которые меньше 50 , есть четное число .
C++ Ввод чисел через функцию http://www.cyberforum.ru/cpp-beginners/thread1311817.html
Всем привет, подскажите как модифицировать код, чтобы числа вводились через вывоз функции? #include <iostream> #include <windows.h> using namespace std; float unitprice_circle(int diameter, float price); /* * возращает цену квадратного сантиметра пиццы,
C++ Данные цели числа b1 , b2 , . , b10 - выяснить Данные цели числа b1 , b2 , ... , b10 - выяснить : а) верно , что сумма тех из них , которые больше 20. превышает 100; б) Верно ли, что сумма тех из них , которые меньше 50 , есть четное число . подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2908 / 1444 / 397
Регистрация: 18.10.2014
Сообщений: 2,662
26.11.2014, 21:07     Перевод из С++ в Си
Цитата Сообщение от stasonio Посмотреть сообщение
Как ее написать в Си обычном?
Вот буквальный перевод вашей программы, без исправления ошибок, но с небольшими стилистическими изменениями. В частности, ваш код неправильно обрабатывает ошибки выделения памяти - если память не была успешно выделена, он выдает сообщение об ошибке, но потом тупо продолжает работать с невыделенной памятью. Я сохранил это поведение и в моем варианте.

Т.е. ошибки подобного рода надо еще дополнительно исправлять.

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
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
typedef struct Node
{
  char *word;
  int count;
  struct Node *next;
} Node;
 
Node *CreateList(Node *node, char *inword)
{
  if (node == NULL)
  {
    node = malloc(sizeof *node);
    if (node == NULL)
      printf("Error allocating memory.\n");
 
    node->word = malloc(strlen(inword) + 1);
    if (node->word == NULL)
      printf("Error allocating memory.\n");
 
    strcpy(node->word, inword);
    node->count = 1;
    node->next = NULL;
  }
  else if (strcmp(inword, node->word) == 0)
    node->count++;
  else
    node->next = CreateList(node->next, inword);
 
  return node;
}
 
int ShowList(Node * node)
{
  if (node != NULL)
  {
    printf("%s %d\n", node->word, node->count);
    ShowList(node->next);
  }
  return 0;
}
 
void DeleteList(Node *node)
{
  if (node != NULL)
  {
    DeleteList(node->next);
    free(node->word);
    free(node);
  }
}
 
int main()
{
  char str[] = "privet vot eto stroka stas kak dela stas stroka vot";
  char *word;
  Node* pnode = NULL;
 
  word = strtok(str, " ,.!?()");
  while (word != NULL)
  {
    pnode = CreateList(pnode, word);
    word = strtok(NULL, " ,.!?()");
  }
 
  ShowList(pnode);
  DeleteList(pnode);
}
 
Текущее время: 15:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru