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

Перевод программы из c++ в с

23.09.2013, 20:05. Показов 1529. Ответов 7
Метки нет (Все метки)

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
#include <iostream>
#include <cstdlib>
#include <string>
 
using namespace std;
 
bool in (string a, string b)
{
 int count[256] = {};
 
 for (int i = 0; i < a.length(); i++)
  count[a[i]]++;
 
 for (int i = 0; i < b.length(); i++)
  count[b[i]]--;
 
 for (int i = 0; i < 256; i++)
  if (count[i] < 0)
   return false;
 
 return true;
}
 
string random ()
{
 int n = 5 + rand() % 5;
 string res;
 
 for (int i = 0; i < n; i++)
  res += (char) 'a' + rand() % 26;
 
 return res;
}
 
int main ()
{
 string s, a, b;
 int ca = 0, cb = 0;
 
 s = random();
 
 cout << "Word of game is: \"" << s << "\".\n";
 for (int i = 0; i < 3; i++)
 {
  cout << "Enter word " << i + 1 << " of first player: ";
  cin >> a;
 
  if (in(s, a)) ca++;
 
  cout << "Enter word " << i + 1 << " of second player: ";
  cin >> b;
 
  if (in(s, b)) cb++;
 }
 
 cout << "Score.\nFirst player: " << ca << ".\nSecond player: " << cb << ".\n";
 
 system("pause");
 
 return 0;
}
Нужно ее переделать в С, в общем что "умею", то исправил, а остальное пока никак В общем программа выдает кучу ошибок, в основном потому, что я не знаю аналогов некоторых операторов, функций. В общем что получилось:
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
#include <stdio.h>
#include <math.h>
#include <time.h>
 
 
 
char gamefunction(char a, char b)
{
 int count[256] = {};
 
 for (int i=0;i<a.length();i++)
  count[a[i]]++;
 
 for (int i=0;i<b.length();i++)
  count[b[i]]--;
 
 for (int i = 0; i < 256;i++)
  if (count[i] < 0)
   return false;
 
 return true;
}
 
char random ()
{
 int n=5+rand()%5;
 char res;
 
 for (int i=0;i<n;i++)
  res+=(char)'a'+rand()%26;
 
 return res;
}
 
int main ()
{
 char s, a, b;
 int ca = 0, cb = 0;
 
 s = random();
 
 printf("Слово в игре: %c\n", s);
 for (int i = 0; i<3; i++)
 {
 printf("Шаг первого игрока вводить %i слово\n", i);
  scanf("%c", &a);
 
  if (in(s, a)) 
  ca++;
 
  printf("Шаг второго игрока игрока вводить %i слово\n", i);
  scanf("%c", &b);
 
  if (in(s, b))
  cb++;
 }
 
printf("Счет первого игрока: %i\n", ca);
printf("Счет первого игрока: %i\n", cb);
 
 system("pause");
 
 return 0;
}
Довольно интересное занятие, но сроки поджимают...
Миниатюры
Перевод программы из c++ в с  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2013, 20:05
Ответы с готовыми решениями:

Перевод программы с Си на С#
Всем привет! Ребят, выручите пожалуйста еще раз!! Имеется код программы на Си (из инета), надо...

Перевод программы из С++ в С
Есть программа которая выводит на экран все варианты перестановки чисел 01234567. Помогите...

Перевод программы с C++ на СИ
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int getCountOfDigits(double a) {...

Перевод программы на F#
В общем писал всю жизнь на объектно ориентированных языках, но столкнулся все же с функционалкой...

7
40 / 60 / 8
Регистрация: 16.11.2012
Сообщений: 460
Записей в блоге: 7
23.09.2013, 22:39 2
Shin Akuma, ты чем компилишь? в том же dev c++ это компилится, да и сколько я читал литературы, ввод/вывод в С такой же как и в С++ , а printf/scanf я ток в паскале и видел... а вообще у тебя судя по логу что-то в циклах неправильно

Добавлено через 1 минуту
проще скажи в чем смысл проги , что она делает...тогда и помозговать можно как это всё прямее и красивее сделать
0
19 / 19 / 13
Регистрация: 17.05.2013
Сообщений: 32
23.09.2013, 23:22 3
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
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
 
bool in (char *a, char *b) {
    int count[256] = {0}, i;
    for (i = 0; i < strlen(a); i++)
        count[a[i]]++;
    for (i = 0; i < strlen(b); i++)
        count[b[i]]--;
    for (i = 0; i < 256; i++)
        if (count[i] < 0)
            return false;
    return true;
}
 
void random (char *res) {
    int i, n = 5 + rand() % 5;
    char cat[2] = "a"; 
    for (i = 0; i < n; i++) {
        cat[0] = 'a' + rand() % 26;
        strcat(res, cat);
    }
}
 
int main () {
    char a[80], b[80], s[80] = "";
    int ca = 0, cb = 0, i;
    random(s);
    printf("Word of game is %s\n", s);
    for (i = 0; i < 3; i++) {
        printf("Enter word %d of first player: ", i + 1);
        scanf("%s", a);  
        if (in(s, a)) ca++; 
        printf("Enter word %d of second player: ", i + 1);
        scanf("%s", b);
        if (in(s, b)) cb++;
    }
    printf("Score.\nFirst player: %d.\nSecond player: %d.\n", ca, cb);
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 21
24.09.2013, 05:56  [ТС] 4
Спасибо тебе огромное Revolver_45!
А вот скажите, пожалуйста, можно ли увеличить длину выдаваемого слова? И, допустим, применить к нему кириллицу?
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
24.09.2013, 12:46 5
Цитата Сообщение от Крюгер Посмотреть сообщение
ввод/вывод в С такой же как и в С++ , а printf/scanf я ток в паскале и видел...
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
24.09.2013, 15:32 6
Цитата Сообщение от Крюгер Посмотреть сообщение
да и сколько я читал литературы, ввод/вывод в С такой же как и в С++ , а printf/scanf я ток в паскале и видел...
Если можно, подробнее, что за литература, и в каком диалекте паскаля есть printf/scanf?
1
40 / 60 / 8
Регистрация: 16.11.2012
Сообщений: 460
Записей в блоге: 7
24.09.2013, 16:01 7
easybudda, а смысл искать старое барахло? я писал на паскале еще в школе 7-9 класс... 10-11класс не писал.

Сейчас я пишу на С++ /Delphi уже 4й год сам подумай оно мне надо сейчас?

Добавлено через 48 секунд
и да... я стараюсь писать только вредоносное ПО

Добавлено через 21 минуту

Не по теме:

ооох ты модер обиделся, и 14 репы сожрал...ггг ну чтож ты пережовывай тщательней, не подавись пожалста позорник: easybudda

0
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 21
25.09.2013, 20:42  [ТС] 8
Цитата Сообщение от Revolver_45 Посмотреть сообщение
bool in (char *a, char *b) {
* * int count[256] = {0}, i;
* * for (i = 0; i < strlen(a); i++)
* * * * count[a[i]]++;
* * for (i = 0; i < strlen(b); i++)
* * * * count[b[i]]--;
* * for (i = 0; i < 256; i++)
* * * * if (count[i] < 0)
* * * * * * return false;
* * return true;
Цитата Сообщение от Revolver_45 Посмотреть сообщение
void random (char *res) {
* * int i, n = 5 + rand() % 5;
* * char cat[2] = "a";
* * for (i = 0; i < n; i++) {
* * * * cat[0] = 'a' + rand() % 26;
* * * * strcat(res, cat);
Цитата Сообщение от Revolver_45 Посмотреть сообщение
char a[80], b[80], s[80] = "";
Цитата Сообщение от Revolver_45 Посмотреть сообщение
if (in(s, a)) ca++;
Если можете, могли бы вы прокомментировать эти функции и строки? Просто у меня не совсем точные мысли о них, а нужны довольно точные.
0
25.09.2013, 20:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2013, 20:42
Помогаю со студенческими работами здесь

Перевод программы из с++ в си
Вообщем надо перевести программу с с++ на си #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include...

Перевод программы
Если кто может перевести программу с C++ на VB6, то стучите в асю 916-291-3 В программе 101...

Перевод программы
var i, n, k : byte; a,b,c : real; begin readln(n);...

перевод программы
Здравствуйте, мне нужно чтобы программу, работающую в TURBO PASCAL переделать чтоб она работала...


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

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