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

Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв. - C++

Восстановить пароль Регистрация
 
BabyGluk
26 / 26 / 4
Регистрация: 10.04.2013
Сообщений: 167
12.05.2013, 00:01     Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв. #1
Задание: дан двумерный массив строк, удалить рядок в котором есть слово которое имеет наибольшее количество разных букв.
по порядку.
нашел на форуме код двумерного массива строк
C++
1
2
3
4
5
6
char* arrsym[2][20];
 for(int i = 0; i < 2; i++)
    gets( (char*)&arrsym[i]);
   cout << "cout" << std::endl;
   for(int i = 0; i < 2; i++)
      cout << (char*)&arrsym[i] << endl;
но что то он меня смущает. [i] отвечает не за символ, а за целый рядок, и я хз как тут разбивать его на слова.
как можно еще сделать такой масив?

Добавлено через 54 минуты
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"stdafx.h"
#include <conio.h>
#include <iostream> 
#include <string>
using namespace std;
const int n=3;
int main()
{   setlocale(0,"");
    string mas[n][n];
    char mass[100];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
        cout<<"Рядок = "<<i<<""<<" Столбец = " <<j<<endl;
        getline(cin,mas[i][j]);
        }
 
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
        mas[i][j]=mas[i][j];
        cout<<mas[i][j]<<" ";
        }
        cout<<endl;
    }
    int a(0);
     for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
        if ((mas[i][j]==" ")&&(mas[i+1][j]!=" ")) a++;
        if (mas[0][0]!=" ") a++;
        }
        
    }
     
    getch();
    return 0;
}
как разбить слово на буквы??
елемент mas[i][j] = слову..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 00:01     Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв.
Посмотрите здесь:

C++ Ввести строку, вывести слово, содержащее наибольшее количество гласных букв
C++ находит такое, в котором наибольшее количество разных букв.
C++ Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв
Удалить ту строку в котором есть слово "нет" C++
C++ Найти на отрезке [m, n] натуральное число, имеющее наибольшее количество делителей
C++ Программа находящая слово, в котором находится наибольшее количество заданной буквы
Найти в строке слово, содержащее наибольшее количество заданных букв C++
Найти строку матрицы, в которой наибольшее количество разных чисел, и отсортировать её по убыванию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
12.05.2013, 09:36     Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв. #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
43
44
45
46
47
48
49
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define N 5
 
int main(int argc, char* argv[])
{
    char* arrsym[N] = { 0 };
 
    for (int s = 0; s < N; s++)
    {
        arrsym[s] = new char[256];
        printf("Enter string %d: ",s); 
        gets_s((char*)arrsym[s],256);
    }
 
    printf("\n");
 
    int min = 256, min_i = 0;
    for (int i = 0; i < N; i++)
    {
        char str[256] = "\0"; 
        strcpy_s(str, 256, arrsym[i]);
        
        char* word = strtok(str," ");
        while (word != NULL)
        {
            int count = 0;
            for (int k = 0; word[k] != '\0'; k++)
                for (int r = k+1; word[r] != '\0'; r++)
                    if (word[r] == word[k]) count++;
 
            if (count < min) { min = count; min_i = i; }
 
            word = strtok(NULL," ");
        }
    }
 
    for (int t = min_i; t < N; t++)
        arrsym[t] = arrsym[t+1];
 
    for (int q = 0; q < N-1; q++)
        printf("%s\n", arrsym[q]);
 
    _getch();
 
    return 0;
}
Миниатюры
Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв.  
BabyGluk
26 / 26 / 4
Регистрация: 10.04.2013
Сообщений: 167
12.05.2013, 11:52  [ТС]     Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв. #3
Спасибо) буду сейчас сидеть ковырять что к чему =)
Yandex
Объявления
12.05.2013, 11:52     Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв.
Ответ Создать тему
Опции темы

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