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

Переделать из С++ в С - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 14:03     Переделать из С++ в С #1
Необходимо переделать код из с++ в с, что до меня не доходит как это сделать, помогите пожалуйста



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
#include <iostream>
 
using namespace std;
 
int main()
{
const int size=10;
    srand(time(0));
    int a[size];
    for(int i=0;i<10;i++)
    {
        a[i]=rand()%25;
        cout<<"a="<<a[i]<<"\n";
    }
    for(int i=0;i<size;i++)
    {
        for(int j=size-1;j>i;j--)
        {
            if(a[j]<a[j-1])
            {
                int tmp=a[j];
                a[j]=a[j-1];
                a[j-1]=tmp;
            }
        }
        cout<<"\t"<<"a="<<a[i]<<"\n";}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2009, 14:03     Переделать из С++ в С
Посмотрите здесь:

Переделать из С++ в С C++
C++ Переделать программу
C++ переделать из С в с++
C++ переделать из с++ в си
C++ Переделать из С в С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
28.12.2009, 14:08     Переделать из С++ в С #2
А с++ то где?
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
28.12.2009, 14:13     Переделать из С++ в С #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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main()
{
const int size=10;
        srand ( time(NULL) );
        int a[size];
        for(int i=0;i<10;i++)
        {
                a[i]=rand()%25;
               printf("a=");
               printf("%d",a[i]);
               printf("\n");
        }
        for(int i=0;i<size;i++)
        {
                for(int j=size-1;j>i;j--)
                {
                        if(a[j]<a[j-1])
                        {
                                int tmp=a[j];
                                a[j]=a[j-1];
                                a[j-1]=tmp;
                        }
                }
                printf("\t a=");
                printf("%d",a[i]);}
                getch();
}
Походу так
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 14:30  [ТС]     Переделать из С++ в С #4
Что-то не работает.

В общем я нигде не смог найти шаблон сортировки по возрастанию "пузырьком" на С есть только С++, сможете такой показать, нужен очень срочно, сегодня сдавать, а мозги уже кипят, всего 3 дня изучаю программрование, помогите плиз, на новогодних каникулах поднатаскаюсь.
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
28.12.2009, 14:31     Переделать из С++ в С #5
что имеено не работает? Какую ошибку выдает? и какой компилятор? У меня DEV-C++ все работает
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 14:36  [ТС]     Переделать из С++ в С #6
компилятор code:blocks, универ сказал делать на нем, ошибки привожу


\9\main.c||In function `main':|
\9\main.c|10|error: 'for' loop initial declaration used outside C99 mode|
\9\main.c|17|error: redefinition of 'i'|
\9\main.c|10|error: previous definition of 'i' was here|
\9\main.c|17|error: 'for' loop initial declaration used outside C99 mode|
\9\main.c|19|error: 'for' loop initial declaration used outside C99 mode|
||=== Build finished: 5 errors, 0 warnings ===|
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
28.12.2009, 14:41     Переделать из С++ в С #7
а понятно
пиши вместо:
C++
1
for(int i=0;i<10;i++)
C
1
2
int i;
for(i=0;i<10;i++)
Добавлено через 2 минуты
Работает?
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
28.12.2009, 14:42     Переделать из С++ в С #8
Цитата Сообщение от fantazer333 Посмотреть сообщение
компилятор code:blocks, универ сказал делать на нем
Code::Blocks - это не компилятор, это среда разработки. А компилятор там - обычный GCC. Укажи ему ключ компилятора "использовать Стандарт C99" (--std=c99), и все получится.
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 14:51  [ТС]     Переделать из С++ в С #9
Спасибо всем, теперь работает.

А кто теперь сможет мне популярно объяснить этот код

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main()
{
const int size=10;
        srand ( time(NULL) );
        int a[size];
        int i;
        for(i=0;i<10;i++)
        {
                a[i]=rand()%25;
               printf("a=");
               printf("%d",a[i]);
               printf("\n");
        }
        for(i=0;i<size;i++)
        {
                for(int j=size-1;j>i;j--)
                {
                        if(a[j]<a[j-1])
                        {
                                int tmp=a[j];
                                a[j]=a[j-1];
                                a[j-1]=tmp;
                        }
                }
                printf("\t a=");
                printf("%d",a[i]);}
                getch();
}
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 14:56  [ТС]     Переделать из С++ в С #10
Простите за наглость.

Подскажите, а как его исправить, чтобы цифры можно было вводить самому.
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
28.12.2009, 15:03     Переделать из С++ в С #11
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main()
{
const int size=10;
        //srand ( time(NULL) );
        int a[size];
        int i;
        for(i=0;i<10;i++)
        {
               // a[i]=rand()%25;
               printf("a=");
              scanf("%d",&(a[i]));
             //  printf("%d",a[i]);
               //printf("\n");
        }
        for(i=0;i<size;i++)
        {
                for(int j=size-1;j>i;j--)
                {
                        if(a[j]<a[j-1])
                        {
                                int tmp=a[j];
                                a[j]=a[j-1];
                                a[j-1]=tmp;
                        }
                }
                printf("\t a=");
                printf("%d",a[i]);}
                getch();
}
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 15:06  [ТС]     Переделать из С++ в С #12
Спасибо.
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 15:14  [ТС]     Переделать из С++ в С #13
А кто теперь сможет мне популярно объяснить этот код, с комментариями у строк, чтоб я окончательно понял алгоритм.
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 16:08  [ТС]     Переделать из С++ в С #14
Спасибо разобрался

Выкладываю облагороженный, так сказать код на С, для тех кому это может понадобиться

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <windows.h>
int main()
{
const int size=10;
        int a[size];
        int i;
        int j;
        int tmp;
        int h=0;
 
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
 
        for(i=0;i<10;i++)
        {
               printf("Введите 10 чисел для сортировки, число a%d=",++h);
              scanf("%d",&(a[i]));
        }
        printf("Сортировка по возрастанию введенных вами чисел\t");
        for(i=0;i<size;i++)
               {
                for(j=size-1;j>i;j--)
                {
                        if(a[j]<a[j-1])
                        {
                                tmp=a[j];
                                a[j]=a[j-1];
                                a[j-1]=tmp;
                        }
                }
                printf("\n\t");
                printf("%d",a[i]);}
                getch();
}
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
28.12.2009, 16:11     Переделать из С++ в С #15
fantazer333, Только принимай во внимание, что многие компиляторы даже после
Код
 SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
русский язык отказываются коректно отображать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2009, 16:19     Переделать из С++ в С
Еще ссылки по теме:

C++ переделать на с++
C++ Переделать код из С в С++
Переделать из C# в C++ C++

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

Или воспользуйтесь поиском по форуму:
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
28.12.2009, 16:19  [ТС]     Переделать из С++ в С #16
Да это я уже понял, но зато после этой команды и изменения свойств окна на шрифт lucida console отображается нормально.

Добавлено через 1 минуту
Помогите пожалуйста разобрать следующий код по полочкам, хотелось бы на его примере научиться. Я так понял, что тут очень много вложенных функций, расшифруйте пожалуйста

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
#include <stdio.h>
#include <string.h>
#include <windows.h>
 
#define STRLEN 255
 
int main(void){
        char str[STRLEN], wrd[STRLEN], *p;
        size_t count_all, count_word;
        count_all=0;
        count_word=0;
 
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
 
        printf("Введите строку: ");
        fgets(str, sizeof(str), stdin);
        if ( p = strrchr(str, '\n') )
                *p = '\0';
        printf("Введите слово для поиска: ");
        fgets(wrd, sizeof(wrd), stdin);
        if ( p = strrchr(wrd, '\n') )
                *p = '\0';
 
        count_all = count_word = 0;
        for ( p = strtok(str, " "); p != NULL; p = strtok(NULL, " ") ){
                ++count_all;
                if ( !strcmp(p, wrd) )
                        ++count_word;
        }
        printf("Всего слов: %d\n", count_all);
        printf("Слово \"%s\" встретилось %d раз(а)\n", wrd, count_word);
 
        return EXIT_SUCCESS;
}
Yandex
Объявления
28.12.2009, 16:19     Переделать из С++ в С
Ответ Создать тему
Опции темы

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