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

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

Войти
Регистрация
Восстановить пароль
 
 
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
#1

найти ошибку в коде - C++

07.12.2012, 14:23. Просмотров 676. Ответов 19
Метки нет (Все метки)

Дана непустая последовательность слов (не более 50), в каждом слове не более восьми символов. Слова разделены пробелом, за последним словом точка. Найти те слова, которые отличаются от последнего слова и длина слов максимальная.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
#include<string.h>
#include<locale.h>
#include<conio.h>
void main()
{setlocale(LC_CTYPE,"Russian");
int i,b,n,p,z;
char A[51][9], X[50][9];
printf_s("введите количество слов\n");
scanf_s("%d",&n);
for(i=0;i<n;i++)
{scanf_s("%s", &A[i]);}
for(i=0,b=0,p=0;i<n;i++)
{if (strcmp(A[i],A[n])!=0)
{z=strlen(A[i]);
if (z>p) {p=z;b=0;X[b]=A[i];b++;}
else {if (z==p) X[b]=A[i];b++;}}}
for(i=0;i<n;i++)
{printf_s("%s",&X[i]);}}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2012, 14:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос найти ошибку в коде (C++):

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде) - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() { int y = 0; for(int i = -21; i &lt; -99; i+=3) ...

Найти ошибку в коде - C++
Помогите пж. найти ошибку в коде,он почему то последний символ не считывает. #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace...

Найти ошибку в коде - C++
#include &lt;iostream&gt; //Подключаем библиотеки #include &lt;iomanip&gt; #include &lt;windows.h&gt; #include &lt;fstream&gt; # include &lt;conio.h&gt; ...

Найти ошибку в коде - C++
Народ вот задача. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main(){ int sra=0,b,q; int i=0,n,arr; ...

Найти ошибку в коде - C++
Помогите пожалуйста найти ошибку в коде: #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; int main() ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
07.12.2012, 15:52 #2
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<locale.h>
#include<conio.h>
 
void main() {
    setlocale(LC_CTYPE,"Russian");
 
    int i, b, n, p, z;
 
    char A[51][9], X[50][9];
    printf_s("введите количество слов\n");
 
    scanf_s("%d",&n);
 
    for(i = 0; i < n; i++){
        scanf_s("%s", &A[i]);
    }
 
    for(i = 0, b = 0, p = 0; i < n; i++) {
        if (strcmp(A[i], A[n])!=0) {
            z = strlen(A[i]);
            if (z > p) {
                p = z;
                b = 0;
                X[b] = A[i];
                b++;
            }
 
            else {
                if (z == p) {
                    X[b] = A[i];
                    b++;
                }
            }
        }
    }
 
    for(i = 0; i < n; i++) {
        printf_s("%s",&X[i]);
    }
}
P.S. Можешь прокомментировать, что и как происходит в этом приличном коде?
0
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
07.12.2012, 15:55  [ТС] #3
По сути программа должна искать слова отличные от последнего слова и чтобы длинна слова была максимальна
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
07.12.2012, 15:57 #4
Еще раз. Ты можешь прокомментировать сам код. Мне не понятно i, b, n, p, z.

P.S. Переменные нужно называть понятным нам всем языком.
0
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
07.12.2012, 16:03  [ТС] #5
i-это строки
b-строки массива куда записывается результат
n- количество слов
p-количество символов в слове
z-переменная значение которой присваивается мощность очередного слова
0
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
07.12.2012, 16:05  [ТС] #6
еще вылазит такая ошибка
0
Миниатюры
найти ошибку в коде  
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
07.12.2012, 16:11 #7
У меня то же самое. Попробую найти.

Добавлено через 2 минуты
Вообще, я программирую на C++. Поэтому мне сложно разобраться в этом коде без комментариев. Жду комментированный код.....
0
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
07.12.2012, 20:50  [ТС] #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
#include<string.h>
#include<locale.h>
#include<conio.h>
void main()
{setlocale(LC_CTYPE,"Russian");
int i,b,n,p,z;//i-количество строк, т.е. слов; b-количество слов, т.е. строк в результирующем массиве;
//n-количество слов; p-количество символов в слове; z-переменная для определения количества элементов в слове
char A[51][9], X[50][9];//массив А со словами, Х массив с результатом
printf_s("введите количество слов\n");
scanf_s("%d",&n);
//ввод массива А
for(i=0;i<n;i++)
{scanf_s("%s", &A[i]);}
//цикл для просмотра всех слов
for(i=0,b=0,p=0;i<n;i++)
{if (strcmp(A[i],A[n])!=0)//лексикографическое сравнение i-го слова с последним словом
{z=strlen(A[i]);//вычисление количества элементов в слове
if (z>p) {p=z;b=0;X[b]=A[i];b++;}//поверка является ли p максимальной мощностью слова, если нет то присвоить максисмальной мощности
//значение мощности i-го слова и запись этого слова в результат
else {if (z==p) X[b]=A[i];b++;}}}// если максимальная мощность равна мощности i-го слова то записываем результат
for(i=0;i<n;i++)//выдаем результат
{printf_s("%s",&X[i]);}}
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
07.12.2012, 21:02 #9
Вырезано
0
Croessmah
Эксперт CЭксперт С++
13228 / 7500 / 845
Регистрация: 27.09.2012
Сообщений: 18,419
Записей в блоге: 3
Завершенные тесты: 1
07.12.2012, 21:02 #10
den4ik_fpmi, у Вас в коде целая куча ошибок. А если код еще и отформатировать, то думаю еще больше сразу же вылезет.
0
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
08.12.2012, 10:07  [ТС] #11
а можешь подсказать как тут реализовать ввод?? с копированием одной строки в другую разобрался, теперь ввод не знаю как сделать

Добавлено через 11 часов 51 минуту
можешь исправить? мне просто его уже в понедельник сдавать
0
ValeryS
Модератор
6633 / 5040 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
08.12.2012, 10:21 #12
Цитата Сообщение от den4ik_fpmi Посмотреть сообщение
strcmp(A[i],A[n])!=0)//лексикографическое сравнение i-го слова с последним словом
A[n] какое слово лежит????
если учесть что
Цитата Сообщение от den4ik_fpmi Посмотреть сообщение
for(i=0;i<n;i++)
{scanf_s("%s", &A[i]);}
последнее введенное слово лежит в A[n-1]
а если n =51 то вообще выход за границы массива
0
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
08.12.2012, 10:28  [ТС] #13
а можно ли так организовать ввод как сделал я, просто когда я ввожу n, то у меня получается я ввожу количество символов а не количество слов
0
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
09.12.2012, 11:01  [ТС] #14
Croessmah, можешь исправить ошибки?? мне в понедельник уже сдавать а че делать не знаю
0
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
09.12.2012, 15:22  [ТС] #15
Вот код, вроде все уже нормально, а при вводе выдает какую то неведомую фигню (смотри скрин)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
#include<string.h>
#include<locale.h>
#include<conio.h>
void main()
{setlocale(LC_CTYPE,"Russian");
int i=0,b,n,p,z,j;
char A[50][9], X[49][9];
printf_s("введите количество слов\n");
scanf_s("%d",&n);
printf("введите последовательность из %d слов\n",n);
while(i<n)
{scanf_s("%s", &A[i]);
i++;}
for(b=0,p=0;i<n;i++)
{if (strcmp(A[i],A[n-1])!=0)
z=strlen(A[i]);
if (z>p) {p=z;b=0;strcpy_s(X[b],A[i]);b++;}
else {if (z==p) strcpy_s(X[b],A[i]);b++;}}
for(b=0;b<n;b++)
{printf_s("%s",X[b]);}
_getch();}
0
Миниатюры
найти ошибку в коде   найти ошибку в коде  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2012, 15:22
Привет! Вот еще темы с ответами:

найти ошибку в коде - C++
Найти ошибку в коде из за которой не показывает квадрат /* ** Haaf's Game Engine 1.8 ** Copyright (C) 2003-2007,...

Найти ошибку в коде - C++
Помогите исправить пожалуйста. #include &lt;stdio.h&gt; #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void...

Найти ошибку в коде - C++
При компиляции ругается libev, вот код ошибок: как бы я понимаю что он пишет, но как это исправить х3, да и врядли это надо править,...

Найти ошибку в коде - C++
Я нуб, всех тонкостей не знаю, тапками не кидайте. Вот код: int i = 0; if (i = 0) cout &lt;&lt; &quot;OK&quot;; else cout &lt;&lt; &quot;WTF???&quot;; ...


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

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

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