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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2013, 13:48   #1
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию Строки

Ребята, помогите пожалуйста найти ошибку в программе.

Задание: Дана строка и натуральное число n. Определить количество пробелов в подстроке, состоящей из первых n символов исходной строки, и выяснить, имеются ли в этой подстроке в точности два соседствующих символа «?» (если вводимое значение n оказывается больше длины строки, выдать сообщение об ошибке)
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
 
 int main()
   { 
       char str[256];
       int i,n,num_pr=0,flag=0;
       printf("Enter string -> ");
       gets(str);
       printf("Enter n -> ");
       scanf("%d",&n);
        if(n>strlen(str))
        {
            printf("\nError!!!");
             return 1;
        }
       for(i=0; i<n; i++)
       {
           if(str[i]==' ')
           {
               num_pr++;
 
           }
            if(str[i]=='?' && str[i+1]=='?')
            {
                flag=1;
            }
       }
 
 
       printf("\n Number space -> %d\n",num_pr);
       (flag) ? printf("Yes") : printf("No");
      getch();
      return 0;
 }

Последний раз редактировалось Stilet; 17.01.2013 в 19:10.
synystergates вне форума Ответить с цитированием
Старый 17.01.2013, 19:08   #2
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Предоставьте результаты компиляции хотя бы, так вы сэкономите своё и чужое время
Возможно, ошибка у вас в этой строке:
Код:
if(str[i]=='?' && str[i+1]=='?')
Попробуйте так:
Код:
if(str[i]=='?' && str[i+1]!='\n' && str[i+1]=='?')
Blind Guard вне форума Ответить с цитированием
Старый 17.01.2013, 21:49   #3
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию

Извиняюсь, теперь буду знать)
Дело не наладилось, все равно не может подсчитать (В фото ниже скомпилировано)
Изображения
Тип файла: jpg Снимок.JPG (27.2 Кб, 68 просмотров)
synystergates вне форума Ответить с цитированием
Старый 17.01.2013, 22:07   #4
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Пробелы правильно считает:

дана строка "3 3 3 3"
подстрока длиной 1 "3"
в ней пробелов 0

А с '?' '?' условие должно быть таким
Код:
 if(str[i]=='?' && (i + 1 < n) && str[i+1]=='?')
Или загвоздка в
Цитата:
точности два соседствующих
То есть три соседствующих уже не прокатит?

Последний раз редактировалось EUGY; 17.01.2013 в 22:12.
EUGY вне форума Ответить с цитированием
Старый 17.01.2013, 22:29   #5
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию

Я если честно без понятия) завтра экзамен, сижу выживаю
synystergates вне форума Ответить с цитированием
Старый 17.01.2013, 22:35   #6
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию

спасибо большое, все понял! Можешь мне помочь еще с одной задачей?
synystergates вне форума Ответить с цитированием
Старый 18.01.2013, 15:09   #7
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Для этого и существует этот раздел.
Только не забывайте, что для каждого отедльного вопроса нужно создавать отдельную тему

Последний раз редактировалось Blind Guard; 18.01.2013 в 15:15.
Blind Guard вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10