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

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

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

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

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

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

нужно найти ошибки в задаче на языке C/ их в районе 10 как выдает компилятор но я не могу их исправить (не знаю как) - C++
#include <math.h> #include <conio.h> #include <stdio.h> void main() { int xa, ya, xb, yb; cprintf("vvod xa, ya, xb, yb"); ...

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
26.01.2012, 16:18 #2
Хм, а как быть с длиной массива? Ее бы тоже передавать как параметр в функцию compare.
0
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));
}
1
Игорь Исаев
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));
}

это вся функция?
0
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 строку? Почесать правое ухо левой рукой?
1
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:29  [ТС] #6
Это точно эта функция? То что написано русскими буквами красным цветом нужно менять? Ребят извените за вопросы если что просто я не очень пока что рублю в программировании
0
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 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:34  [ТС] #8
Да, тут пишут: "Функция main должна считывать две строки с клавиатуры вызывать функцию compare и вывести результат её работы на экран"
0
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
26.01.2012, 16:36 #9
Выше смотри
0
Игорь Исаев
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:41  [ТС] #10
Вторая функция это решение?
0
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 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 16:49  [ТС] #12
Скопировал, жму Ctrl+F5 пишет что обнаружена ошибка: fatal error C1071: непредвиденное обнаружение конца файла в комментарии
1>
0
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 / 0
Регистрация: 26.01.2012
Сообщений: 11
26.01.2012, 17:07  [ТС] #14
Это учебный компьютер, в аудитории Я незнаю что тут что, честно говоря...

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

Добавлено через 6 минут
никак не хочет выводить результат..
0
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++?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2012, 17:18
Привет! Вот еще темы с ответами:

Как написать комментарии не знаю - C++
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;cstdlib&gt; #include&lt;string&gt; #include&lt;cstdio&gt; using namespace std; const int...

Не знаю как исправить ошибку - C++
при выводе всего списка не выдает верную информацию. Не могу понять что не так, помогите. Заранее спасибо. #include &lt;stdio.h&gt; ...

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

Сортировка(я не знаю как сделать) - C++
Имеется одномерный массив длинной N=40. Отсортировать по уменьшению методом бинарного сортирования те элементы массива, которые являются...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.01.2012, 17:18
Ответ Создать тему
Опции темы

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