Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2012, 17:44   #1
Юлия-
 
Регистрация: 11.11.2012
Сообщений: 7
Радость Не могу исправить ошибку (((

мне нужно определить количество слов в которых одинакова первая и последняя буквы
я попыталась но ничего не получается(((
Код:
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
char main()
{
  setlocale(LC_ALL,"Rus");
  char a[200],k[50],x,y;
  int j,t,i=0;
  //cout << "Введите строку:\n";
  //cin >> a;
  cin.get(a,200,'.');
  while (a[i]!='.')
  {
    for (j=0;a[j]==' ';j++)
    {
      if (a[j]==' ')
      {
        strncpy(k,a,j);
      }
    }
    x=k[0];
    y=k[j];
    if (x==y)
    {
      for (t=0;t==j;t++)
      {
        cout << k[t];
      }
    }
    i++;
  }
  _getch();
  return 0;
}

Последний раз редактировалось ACE Valery; 10.12.2012 в 18:05.
Юлия- вне форума Ответить с цитированием
Старый 10.12.2012, 17:46   #2
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Код лучше оформить как код. Не читаемо ведь.
Prin53 вне форума Ответить с цитированием
Старый 10.12.2012, 17:49   #3
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main()
{
    static char str[256] = "new linux tux was developed with c++ programming language";
 
    for (char* word = strtok(str," "); 
        word != NULL; word = strtok(NULL, " "))
        if (*word == *(word+strlen(word)-1))
            printf("%s ", word);
    printf("\n");
 
    _getch();
}

Последний раз редактировалось Prin53; 10.12.2012 в 17:51.
Prin53 вне форума Ответить с цитированием
Старый 10.12.2012, 18:04   #4
Юлия-
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию

нет мне нужно обработать текст,вводимый с клавиатуры
Юлия- вне форума Ответить с цитированием
Старый 10.12.2012, 18:06   #5
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Юлия- Посмотреть сообщение
нет мне нужно обработать текст,вводимый с клавиатуры
А в чем проблема, дописать ввод нужно и все.

Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
using namespace std;

int main()
{
    static char str[256]; // "new linux tux was developed with c++ programming language";
	cin.get(str,200,'.');
    for (char* word = strtok(str," "); 
        word != NULL; word = strtok(NULL, " "))
        if (*word == *(word+strlen(word)-1))
            printf("%s ", word);
    printf("\n");
 
    _getch();
}

Последний раз редактировалось Prin53; 10.12.2012 в 18:09.
Prin53 вне форума Ответить с цитированием
Старый 10.12.2012, 19:38   #6
Юлия-
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию

программа выдаёт просто слова а нужно их количество
Юлия- вне форума Ответить с цитированием
Старый 10.12.2012, 20:06   #7
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Пожалуйста.
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
using namespace std;

int main()
{
	int k = 0;
    static char str[256]; // "new linux tux was developed with c++ programming language";
	cin.get(str,200,'.');
    for (char* word = strtok(str," "); 
        word != NULL; word = strtok(NULL, " "))
        if (*word == *(word+strlen(word)-1))
            k++;
	cout<<k;
 
    _getch();
}
Prin53 вне форума Ответить с цитированием
Старый 11.12.2012, 11:35   #8
monster-bonster
Пользователь
 
Аватар для monster-bonster
 
Регистрация: 27.06.2012
Сообщений: 38
По умолчанию

Код:
#include <stdio.h>

#define MAX_LENGHT 256

int headtail(char *, int);

int main()
{
	char string[ MAX_LENGHT ] = "ну вот и решение задачи, хотя не очень точное";
	//scanf("%s", string);

	int i;
	int numw = 0; // количество слов у которых последние и первые буквы одинаковы

	for (i = 0; string[ i ];) {
		if (headtail(string, i))
			numw++;

		do {
			i++;
		} while (string[ i-1 ] != ' ');
	}

	printf("%d\n", numw);

	return 0;
}

int headtail(char * s, int i)
{
	int j;

	// перемещение на последнюю букву
	for (j = i; (s[ j+1 ]) && (s[ j+1 ] != ' '); j++);

	// сравнение первой и последней буквы
	if (s[ i ] == s[ j ])
		return 1;
	else
		return 0;
}
Можно и так, хотя код написан на С, но
она все равно будет компилироваться.
Мой вам совет, почаще пользуйтесь методом
"разделяй и властвуй"
monster-bonster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу исправить ошибку serzav5 Общие вопросы C/C++ 3 22.01.2012 13:46
Никак не могу исправить ошибку. Kulikcha Visual C++ 5 17.06.2011 00:05
Не могу исправить ошибку.(Турбо Паскаль) alzm Помощь студентам 4 25.03.2010 14:44
массив записи, не могу исправить ошибку Алекс К. Помощь студентам 3 30.05.2009 02:28