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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
#1

Не знаю как выполнить - C++

26.01.2012, 16:11. Просмотров 774. Ответов 18
Метки нет (Все метки)

Помогите пожалуйста с этой задачей:
Напишите функцию void compare (char str1, char str2), сравнивающую 2 символьных массива. Функция main должна считывать две строки с клавиатуры, вызывать функцию compare, вывести результат её работы на экран.
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 16:11     Не знаю как выполнить
Посмотрите здесь:

Не знаю как отсортировать - C++
Есть матрица 22х22, нужно заполнить его случайными числами от-22 до 22 и отсортировать четные столбцы в обратном порядке, а нечетные в...

Я не знаю как доработать - C++
Написал код, но очень криво и нифига ничего не работает. Наш препод ничерта не объясняет =( Учу С всего 2 месяца Итак задание:...

Не знаю как реализовать - C++
Итак, пользователь может ввести, а может и ничего не вводить, но програма выводит число через каждые sleep(500) как реализировать...

Не знаю как написать - C++
Помогите пожалуйста ! Задание : Дан символьный файл. Получить копию этого файла. совсем не пойму что делать... Есть ли какие либо...

Не знаю как назвать - C++
Подскажите пожалуйста, где здесь ошибка? Пытался скомпилировать в Microsoft Visual C++ (2010) Нажал на кнопку Run, а там ошибка, ну...

Не знаю как сделать цикл - C++
Здравствуйте! ребят, помогите решить проблему... Вот сделал программу которая закрывает процессы/окна которые есть в файле т.е. их...

не знаю как сделать (язык С++) - C++
как определить что точка входит в заштрихованную область?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
26.01.2012, 16:18     Не знаю как выполнить #2
Хм, а как быть с длиной массива? Ее бы тоже передавать как параметр в функцию compare.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
26.01.2012, 16:19     Не знаю как выполнить #3
C
1
2
3
4
void compare(char* s1, char* s2)
{
   printf ("%d", strcmp(s1, s2));
}
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:26  [ТС]     Не знаю как выполнить #4
Ребят тут больше ничего не написано про массив...у меня сейчас экзамен, всеми способами стараюсь найти решение этой задачи.

Добавлено через 26 секунд
Цитата Сообщение от go Посмотреть сообщение
C
1
2
3
4
void compare(char* s1, char* s2)
{
   printf ("%d", strcmp(s1, s2));
}

это вся функция?
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
26.01.2012, 16:27     Не знаю как выполнить #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void compare(char *str1, char *str2)
{
    if (strlen(str1) < strlen(str2))
    { cout << "Вторая строка больше!" << endl; return; }
    if (strlen(str1) > strlen(str2))
    { cout << "Первая строка больше!" << endl; return; }
 
    int a = strlen(str1);
    for (int i = 0; i < a; i++)
    {
        if (str1[i] > str2[i])
        { cout << "Первая строка больше!" << endl; return; }
        if (str1[i] < str2[i])
        { cout << "Вторая строка больше!" << endl; return; }
    }
 
    cout << "Строки равны!" << endl;            
}
p.s. не проверял, раз экзамен
p.s.s. Раз просят написать это, вряд ли разрешено использовать strcmp. Смысл писать функцию в 1 строку? Почесать правое ухо левой рукой?
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:29  [ТС]     Не знаю как выполнить #6
Это точно эта функция? То что написано русскими буквами красным цветом нужно менять? Ребят извените за вопросы если что просто я не очень пока что рублю в программировании
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
26.01.2012, 16:32     Не знаю как выполнить #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
#include <iostream>
#include <locale>
 
using std::cout;
using std::cin;
using std::endl;
 
void compare(char *, char *);
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    char *str1 = new char[20];
    char *str2 = new char[20];
 
    cout << "Введите первую строку: ";
    cin.getline(str1, 20);
    cout << "Введите вторую строку: ";
    cin.getline(str2, 20);
 
    compare(str1, str2); 
 
    return 0;
}
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:34  [ТС]     Не знаю как выполнить #8
Да, тут пишут: "Функция main должна считывать две строки с клавиатуры вызывать функцию compare и вывести результат её работы на экран"
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
26.01.2012, 16:36     Не знаю как выполнить #9
Выше смотри
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:41  [ТС]     Не знаю как выполнить #10
Вторая функция это решение?
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
26.01.2012, 16:43     Не знаю как выполнить #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
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <locale>
 
using std::cout;
using std::cin;
using std::endl;
 
void compare(char *, char *);
 
int main()
{
        setlocale(LC_ALL, "rus");
 
        char *str1 = new char[20];
        char *str2 = new char[20];
 
        cout << "Введите первую строку: ";
        cin.getline(str1, 20);
        cout << "Введите вторую строку: ";
        cin.getline(str2, 20);
 
        compare(str1, str2); 
 
        return 0;
}
 
void compare(char *str1, char *str2)
{
        if (strlen(str1) < strlen(str2))
        { cout << "Вторая строка больше!" << endl; return; }
        if (strlen(str1) > strlen(str2))
        { cout << "Первая строка больше!" << endl; return; }
 
        int a = strlen(str1);
        for (int i = 0; i < a; i++)
        {
                if (str1[i] > str2[i])
                { cout << "Первая строка больше!" << endl; return; }
                if (str1[i] < str2[i])
                { cout << "Вторая строка больше!" << endl; return; }
        }
 
        cout << "Строки равны!" << endl;                        
}
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:49  [ТС]     Не знаю как выполнить #12
Скопировал, жму Ctrl+F5 пишет что обнаружена ошибка: fatal error C1071: непредвиденное обнаружение конца файла в комментарии
1>
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
26.01.2012, 16:51     Не знаю как выполнить #13
Visual Studio 2010 полет нормальный... Какой у тебя компилятор?
p.s. ты код без номеров строк копировал? Все, что в окошке нужно. Без 1 ... 2... 3... ..... 10
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 17:07  [ТС]     Не знаю как выполнить #14
Это учебный компьютер, в аудитории Я незнаю что тут что, честно говоря...

Добавлено через 6 минут
Да конечно я без цифр скопировал

Добавлено через 6 минут
никак не хочет выводить результат..
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
26.01.2012, 17:18     Не знаю как выполнить #15
Убрал локализацию, добавил использование всего пр-ва std. Но это бред. Я не знаю Попробуй:
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
#include <iostream>
 
using namespace std;
 
void compare(char *, char *);
 
int main()
{
        char *str1 = new char[20];
        char *str2 = new char[20];
 
        cout << "Vvedite pervyiy stroky: ";
        cin.getline(str1, 20);
        cout << "Vvedite vtoryy stroky: ";
        cin.getline(str2, 20);
 
        compare(str1, str2); 
 
        return 0;
}
 
void compare(char *str1, char *str2)
{
        if (strlen(str1) < strlen(str2))
        { cout << "Vtoraya bol'she!" << endl; return; }
        if (strlen(str1) > strlen(str2))
        { cout << "Pervaya bol'she!" << endl; return; }
 
        int a = strlen(str1);
        for (int i = 0; i < a; i++)
        {
                if (str1[i] > str2[i])
                { cout << "Pervaya bol'she!" << endl; return; }
                if (str1[i] < str2[i])
                { cout << "Vtoraya bol'she!" << endl; return; }
        }
 
        cout << "Stroki ravni" << endl;                        
}
p.s. Программа кстати на C++?
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
26.01.2012, 17:21     Не знаю как выполнить #16
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
#include <iostream>
#include <locale>
 
using std::cout;
using std::cin;
using std::endl;
 
void compare(char *, char *);
 
int main()
{
        setlocale(LC_ALL, "rus");
 
        char *str1 = new char[20];
        char *str2 = new char[20];
 
        cout << "Введите первую строку: ";
        cin.getline(str1, 20);
        cout << "Введите вторую строку: ";
        cin.getline(str2, 20);
 
        compare(str1, str2); 
 
        return 0;
}
 
void compare(char *str1, char *str2)
{
        if (strlen(str1) < strlen(str2))
        { cout << "Вторая строка больше!" << endl; return; }
        if (strlen(str1) > strlen(str2))
        { cout << "Первая строка больше!" << endl; return; }
 
        int a = strlen(str1);
        for (int i = 0; i < a; i++)
        {
                if (str1[i] > str2[i])
                { cout << "Первая строка больше!" << endl; return; }
                if (str1[i] < str2[i])
                { cout << "Вторая строка больше!" << endl; return; }
        }
 
        cout << "Строки равны!" << endl;                        
}
для не особо понятливых слепил два сообщения от Pavel.fromBy
Pavel.fromBy
26.01.2012, 17:24
  #17

Не по теме:

co6ak, Pavel.fromBy слепил их более 2ух постов назад

co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
26.01.2012, 17:26     Не знаю как выполнить #18
Цитата Сообщение от Pavel.fromBy Посмотреть сообщение

Не по теме:

co6ak, Pavel.fromBy слепил их более 2ух постов назад

не бывает, что уж
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2012, 17:31     Не знаю как выполнить
Еще ссылки по теме:

не знаю как заставить работать - C++
7,9.cpp:7:10: error: invalid use of non-static data member ‘matrix::two’ long two,one; ^ 7,9.cpp:8:15: error: from...

Не знаю как обратиться к переменной - C++
есть такой код class a{ public int q; }; class b{ public a r; }; int main(){ b test;

Не знаю как объявить указатель! - C++
Нужно ввести указатель ptr, чтобы он изначально указывал на голову двусвязного списка. Не знаю как это сделать, постоянно ошибками сыплет. ...

Не знаю как исправить ошибку - C++
Всем привет! В общем делал задание на перегрузку операторов, вот код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using...

Не знаю как настроить счетчики for... - C++
у меня есть два счетчика for.мне нужно чтоб второй счетчик при первом значение первого счетчика считал свое первое значение, а при втором...


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

Или воспользуйтесь поиском по форуму:
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 17:31  [ТС]     Не знаю как выполнить #19
Спасибо за помощь
Yandex
Объявления
26.01.2012, 17:31     Не знаю как выполнить
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru