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

переделать из с++ в си - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ лексический анализ дубль 2 http://www.cyberforum.ru/cpp-beginners/thread828654.html
у меня собственно говоря опять проблема. Лексический разбор многочлена. Только на этот раз я пошел другим путем. Вот что получилось. (код ниже). Вроде бы все работает, но если написать извращенный моном, то работать отказывается, точнее работает, но коряво. Нужен свежий взгляд на код. например такую строчку "-666x^2x^28xxxy^13yyyz^84zzz" разбирает хорошо, а вот такую...
C++ Не могу создать шаблон Здорова господа! Снова пытаюсь написать шаблон и сново программа не компилируется #include <iostream> using std::cout; using std::endl; template<typename C> class String { class Cref; http://www.cyberforum.ru/cpp-beginners/thread828646.html
6.82. Дано натуральное число. Определить, является ли разность его макси-мальной и минимальной цифр четным числом C++
6.82. Дано натуральное число. Определить, является ли разность его макси-мальной и минимальной цифр четным числом.
C++ 8.27. Найти все целые числа из промежутка от 1 до 300 у которых ровно пять делителей
8.27. Найти все целые числа из промежутка от 1 до 300 у которых ровно пять делителей.
C++ 10.23. Дата некоторого дня характеризуется гремя натуральными числами: g (год), m (порядковый номер месяца) и n (число). По заданным g, n и m определи http://www.cyberforum.ru/cpp-beginners/thread828642.html
10.23. Дата некоторого дня характеризуется гремя натуральными числами: g (год), m (порядковый номер месяца) и n (число). По заданным g, n и m определить: а) дату предыдущего дня; б) дату следующего дня.
C++ 11.131. Известны очки (3, 1 или 0), полученные футбольной командой за ряд игр в порядке их проведения Что было раньше: первый выигрыш (3 очка) или пер 11.131. Известны очки (3, 1 или 0), полученные футбольной командой за ряд игр в порядке их проведения Что было раньше: первый выигрыш (3 очка) или первый проигрыш (0 очков)? подробнее

Показать сообщение отдельно
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
05.04.2013, 07:00     переделать из с++ в си
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
char** vvodmatr(int, int);        //прототипы
void zadachamatr(char**, int, int);
void delmatr(char**, int);
 
int main()
{
   printf("input size of array: ");
   int m;            //кол-во сторок
   scanf("%d", &m);
 
   int n;            //кол-во символов в строке
   printf("input count chars in string: ");
   scanf("%d", &n);
 
   char** array = vvodmatr(m, n);
   zadachamatr(array, m, n);
   delmatr(array, m);
 
   system("pause");
 
   return 0;
}
 
char** vvodmatr(int m, int n)
{
   n++;
   char** array = (char**) malloc(sizeof(char*) * m);
   for (int i = 0; i < m; i++)
   {
      array[i] = (char*) malloc(sizeof(char) * (n+1));
      array[i][n] = 0;
   }
   for (int i = 0; i < m; i++)
   {
      printf("input %2d string: ", i+1);
      fflush(stdin);
      fgets(array[i], n, stdin);
   }
   return array;
}
 
void zadachamatr(char** array, int m, int n)
{
   int i;
   for (i = 0; i < m; i++)
   {
      const char* begin = array[i];
      const char* end = array[i] + strlen(array[i]) - 1;
 
      for (; (begin < end) && (*begin == *end); ++begin, --end) { ; }
 
      if (end <= begin)
      {
         printf("%s\n", array[i]);
      }
   }
}
 
void delmatr(char** array, int m)
{
   for (int i = 0; i < m; i++)
   {
      free(array[i]);
   }
   free(array);
}
 
Текущее время: 15:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru