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

Аргументы функции main() - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
qwerty2010
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 13
23.01.2012, 22:01     Аргументы функции main() #1
Написать программу для определения, чередуются ли в данной последовательности символы ‘+’ и ‘-‘, и сколько раз каждый из этих символов входит в эту последовательность. Собственно определение оформить как функцию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2012, 22:01     Аргументы функции main()
Посмотрите здесь:

C++ Аргументы функции main
Аргументы командной строки в функции main C++
Аргументы функции main C++
Аргументы, передаваемые в main C++
C++ аргументы main
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7224 / 3286 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
24.01.2012, 11:10     Аргументы функции main() #2
У тебя есть куча вариантов
1) Подавать последовательность как аргументы командной строки
Получишь как argc, argv из main()

2) Запросить у пользователя строку
Прочитать с помощью функции fgets()

Добавлено через 7 минут
Не очень понял что именно тебе нужно
Если данные для анализа уже получены
то можно сделать такую функцию

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 <stdlib.h>
#include <string.h>
 
 
void do_calc( const char *str, int *is_chered, int *cnt_plus, int *cnt_minus );
 
 
int main( void ) {
 
char buf[100];
int is_chered;
int cnt_plus, cnt_minus;
 
 
strcpy( buf, "++--z++1++2--4--aaatttt" );
do_calc( buf, &is_chered, &cnt_plus, &cnt_minus );
printf( "cheredovanie: %s, kol-vo plusov: %d, kol-vo minusov: %d\n",
    (is_chered)? "EST" : "NET",
    cnt_plus,
    cnt_minus
);
return 0;
 
} /* main() */
 
 
 
void do_calc( const char *str, int *is_chered, int *cnt_plus, int *cnt_minus ) {
 
*is_chered= 0;
*cnt_plus= 6;
*cnt_minus= 6;
 
} /* do_calc() */
-=ЮрА=-
Заблокирован
Автор FAQ
24.01.2012, 11:19     Аргументы функции main() #3
Цитата Сообщение от qwerty2010 Посмотреть сообщение
аргументы функции main()
Цитата Сообщение от qwerty2010 Посмотреть сообщение
Написать программу для определения, чередуются ли в данной последовательности символы ‘+’ и ‘-‘, и сколько раз каждый из этих символов входит в эту последовательность. Собственно определение оформить как функцию.
- причём тут аргументы main - ???Вы последовательность через командную строку передавать будете???
Какой язык С/С++???Уточняйте - напишем
qwerty2010
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 13
24.01.2012, 12:41  [ТС]     Аргументы функции main() #4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- причём тут аргументы main - ???Вы последовательность через командную строку передавать будете???
Какой язык С/С++???Уточняйте - напишем
такое задание)) и язык именно с++, только начал его изучать)

Добавлено через 37 минут
Цитата Сообщение от odip Посмотреть сообщение
У тебя есть куча вариантов
1) Подавать последовательность как аргументы командной строки
Получишь как argc, argv из main()

2) Запросить у пользователя строку
Прочитать с помощью функции fgets()

Добавлено через 7 минут
Не очень понял что именно тебе нужно
Если данные для анализа уже получены
то можно сделать такую функцию

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 <stdlib.h>
#include <string.h>
 
 
void do_calc( const char *str, int *is_chered, int *cnt_plus, int *cnt_minus );
 
 
int main( void ) {
 
char buf[100];
int is_chered;
int cnt_plus, cnt_minus;
 
 
strcpy( buf, "++--z++1++2--4--aaatttt" );
do_calc( buf, &is_chered, &cnt_plus, &cnt_minus );
printf( "cheredovanie: %s, kol-vo plusov: %d, kol-vo minusov: %d\n",
    (is_chered)? "EST" : "NET",
    cnt_plus,
    cnt_minus
);
return 0;
 
} /* main() */
 
 
 
void do_calc( const char *str, int *is_chered, int *cnt_plus, int *cnt_minus ) {
 
*is_chered= 0;
*cnt_plus= 6;
*cnt_minus= 6;
 
} /* do_calc() */
если не трудно напишите код попроще, а то я только начинающий, и некоторые коды не понимаю
заранее спасибо
-=ЮрА=-
Заблокирован
Автор FAQ
24.01.2012, 13:20     Аргументы функции main() #5
qwerty2010, тебе нужен ввод либо через командную строку либо если аргументов не передали то необходимо осуществить пользовательский ввод...Ща сделаем
-=ЮрА=-
Заблокирован
Автор FAQ
24.01.2012, 13:54     Аргументы функции main() #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ввод либо через командную строку либо если аргументов не передали то необходимо осуществить пользовательский ввод
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
#include <iostream>
#include <string>
using namespace std;
 
int main(int argc, char * argv[])
{
    int i;
    string input;
    cout<<"Your input is from : ";
    if(1 < argc)//Ââîäæ ÷åðå êîììГ*Г*Г¤Г*ГіГѕ ñòðîêó
    {
        cout<<"command line\n";
        for(i = 1; i < argc; i++)
            input += argv[i];//Ïðîñòî ñëåïëèâГ*Гѕ ГўГ±ГҐ Г*ðãóìåГ*ГІГ» Гў ñòðîêó
    }
    else//Åñëè ГЇГ*Г°Г*ìåòðîâ Г*ГҐ ïåðåäГ*ëè ââîäèì âðó÷Г*ГіГѕ
    {
        cout<<"handle\n";
        cout<<"Enter string : ";
        getline(cin,input);
    }
    cout<<"Input string : "<<input.c_str()<<endl;
    int nPlus = 0;
    int nMinus= 0;
    for(i = 0; i < input.length(); i++)
    {
        if(input[i] == '+')
            nPlus++;
        if(input[i] == '-')
            nMinus++;
    }
    if(nPlus < 1)
        cout<<"Input string not contain '+'\n";
    else
    if(nMinus < 1)
        cout<<"Input string not contain '-'\n";
    else
        cout<<" + is "<<(nPlus < nMinus ? " more " : " less ")<<"than - \n";
    system("pause");
    return 0;
}
Миниатюры
Аргументы функции main()   Аргументы функции main()  
qwerty2010
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 13
24.01.2012, 14:29  [ТС]     Аргументы функции main() #7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
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
#include <iostream>
#include <string>
using namespace std;
 
int main(int argc, char * argv[])
{
    int i;
    string input;
    cout<<"Your input is from : ";
    if(1 < argc)//Ââîäæ ÷åðå êîììГ*Г*Г¤Г*ГіГѕ ñòðîêó
    {
        cout<<"command line\n";
        for(i = 1; i < argc; i++)
            input += argv[i];//Ïðîñòî ñëåïëèâГ*Гѕ ГўГ±ГҐ Г*ðãóìåГ*ГІГ» Гў ñòðîêó
    }
    else//Åñëè ГЇГ*Г°Г*ìåòðîâ Г*ГҐ ïåðåäГ*ëè ââîäèì âðó÷Г*ГіГѕ
    {
        cout<<"handle\n";
        cout<<"Enter string : ";
        getline(cin,input);
    }
    cout<<"Input string : "<<input.c_str()<<endl;
    int nPlus = 0;
    int nMinus= 0;
    for(i = 0; i < input.length(); i++)
    {
        if(input[i] == '+')
            nPlus++;
        if(input[i] == '-')
            nMinus++;
    }
    if(nPlus < 1)
        cout<<"Input string not contain '+'\n";
    else
    if(nMinus < 1)
        cout<<"Input string not contain '-'\n";
    else
        cout<<" + is "<<(nPlus < nMinus ? " more " : " less ")<<"than - \n";
    system("pause");
    return 0;
}
оо, мой компилятор выдал на эту программу аж целых 11 ошибок)
-=ЮрА=-
Заблокирован
Автор FAQ
24.01.2012, 14:36     Аргументы функции main() #8
Цитата Сообщение от qwerty2010 Посмотреть сообщение
оо, мой компилятор выдал на эту программу аж целых 11 ошибок)
Действительно ооо -в чём пишем???

Не по теме:

PS:Всегда можно удалить отвратный компилятор и поставить нормальный...



Добавлено через 1 минуту
qwerty2010, предположу что Билдер используете???Тогда да код надо преобразовать.
Пишем пишем иначе помогать не буду...
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
24.01.2012, 14:39     Аргументы функции main() #9
-=ЮрА=-, а ведь вопрос был " чередуются ли в данной последовательности символы ‘+’ и ‘-‘" ?
-=ЮрА=-
Заблокирован
Автор FAQ
24.01.2012, 14:41     Аргументы функции main() #10
Вот это думаю свободно пойдёт в Билдере
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
#include <stdio.h>
#include <string.h>
 
int main(int argc, char * argv[])
{
    int i;
    char input[2048] = {0};
    printf("Your input is from : ");
    if(1 < argc)//Ââîä ÷åðåç êîììГ*Г*Г¤Г*ГіГѕ ñòðîêó
    {
        printf("command line\n");
        for(i = 1; i < argc; i++)
            strcat(input,argv[i]);//Ïðîñòî ñëåïëèâГ*Гѕ ГўГ±ГҐ Г*ðãóìåГ*ГІГ» Гў ñòðîêó
    }
    else//Åñëè ГЇГ*Г°Г*ìåòðîâ Г*ГҐ ïåðåäГ*ëè ââîäèì âðó÷Г*ГіГѕ
    {
        printf("handle\n");
        printf("Enter string : ");
        scanf("%[^\n]",input);
    }
    printf("Input string : %s\n",input);
    int nPlus = 0;
    int nMinus= 0;
    for(i = 0; i < input[i] != '\0'; i++)
    {
        if(input[i] == '+')
            nPlus++;
        if(input[i] == '-')
            nMinus++;
    }
    if(nPlus < 1)
        printf("Input string not contain '+'\n");
    else
    if(nMinus < 1)
        printf("Input string not contain '-'\n");
    else
        printf(" + is %s than - \n",(nPlus < nMinus ? " more " : " less "));
    getchar();
    return 0;
}
Добавлено через 55 секунд
Цитата Сообщение от MrCold Посмотреть сообщение
-=ЮрА=-, а ведь вопрос был " чередуются ли в данной последовательности символы ‘+’ и ‘-‘" ?
тогда прочти задание

Цитата Сообщение от qwerty2010 Посмотреть сообщение
и сколько раз каждый из этих символов входит в эту последовательность.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
24.01.2012, 14:47     Аргументы функции main() #11
-=ЮрА=-, спорить не собираюсь, но по моему это уже 2-я часть задания :
"и сколько раз каждый из этих символов входит в эту последовательность".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2012, 15:07     Аргументы функции main()
Еще ссылки по теме:

Аргументы для функции main() C++
C++ Шифрование. Аргументы функции MAIN
C++ Аргументы функции main

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
24.01.2012, 15:07     Аргументы функции main()
  #12

Не по теме:

MrCold, можешь подсказать смысл твоих постов???
Я с тобой и не собирался спорить если бы мне не написал вообще пропустил бы твой пост...

Yandex
Объявления
24.01.2012, 15:07     Аргументы функции main()
Ответ Создать тему
Опции темы

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