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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2010, 23:23   #11
kiborrgg
Delphi / C++
Пользователь
 
Аватар для kiborrgg
 
Регистрация: 29.09.2010
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Lodas Посмотреть сообщение
Вот я написал код.
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{ char Str;
int i,n, kol, flag;
printf("VVedite stroky");
scanf("%d", Str);
printf("VVedite natur chilo n");
scanf("%d", n);
flag=0;
kol=0;
while (n <= strlen(Str)){
for (i:=1, i<n, i++)
if (Str[i]=' ') {kol++} else
if (Str[i]='?') and (Str[i+1]='?'){flag=1;}   
printf ("Kol probelov=%d", kol);
if (flag=1) {printf ("Yes");} else printf ("No");}   
    
    getch();}
Но вот в этой строке почему то вылетает ошибка
Код:
do while (n <= strlen(Str)){
Почему?
Вот что ты написал:
пока N меньше длинны строки выполнять вот это
Код:
for (i:=1, i<n, i++)
if (Str[i]=' ') {kol++} else
if (Str[i]='?') and (Str[i+1]='?'){flag=1;}   
printf ("Kol probelov=%d", kol);
if (flag=1) {printf ("Yes");} else printf ("No");}   
    
    getch();}
т.е. получается что выполнять это он будет вечно.
Тебе надо всего лишь создать условие на то, что если введёное число N больше длинны строки - выдавать ошибку и заново повторить ввод
kiborrgg вне форума Ответить с цитированием
Старый 18.12.2010, 23:27   #12
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

а в си же нету вроди цикла repeat? можно ли его чем то заменить?
Lodas вне форума Ответить с цитированием
Старый 18.12.2010, 23:29   #13
kiborrgg
Delphi / C++
Пользователь
 
Аватар для kiborrgg
 
Регистрация: 29.09.2010
Сообщений: 28
По умолчанию

Код:
...
repeat {повторить}
 read(n); {ввод N}
  if n>length(s) then write('Ошибка! Повторите ввод'); 
until n<=length(st); {пока N не будет меньше или равно длинны строки St}
...

Последний раз редактировалось kiborrgg; 18.12.2010 в 23:33.
kiborrgg вне форума Ответить с цитированием
Старый 18.12.2010, 23:30   #14
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

я возможно не проходил такой цикл. всмысле вообще его не знаю. он ничем не заменяется?
Lodas вне форума Ответить с цитированием
Старый 18.12.2010, 23:30   #15
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Епта. А я Вам что написал?
psycho-coder вне форума Ответить с цитированием
Старый 18.12.2010, 23:37   #16
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

Простите. Я кажеться просто я не понимаю какой в данном случае сдесь должен быть код?
Код:
do 

\\Вот здесь я не знаю что написать, а дальше условие идет...

while (n <= strlen(Str)){
for (i:=1, i<n, i++)
if (Str[i]=' ') {kol++} else
if (Str[i]='?') and (Str[i+1]='?'){flag=1;}   
printf ("Kol probelov=%d", kol);
if (flag=1) {printf ("Yes");} else printf ("No");}
Lodas вне форума Ответить с цитированием
Старый 18.12.2010, 23:45   #17
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

http://www.cplusplus.com/doc/tutorial/control/#do
Это я надеюсь понятно?
psycho-coder вне форума Ответить с цитированием
Старый 18.12.2010, 23:45   #18
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

как было бы сделать правильно?
Lodas вне форума Ответить с цитированием
Старый 18.12.2010, 23:47   #19
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

я изучаю немецкий, к сожалению мне там ничего не понятно... А вообще как нужно сделать правильно?
Lodas вне форума Ответить с цитированием
Старый 18.12.2010, 23:53   #20
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Код:
do
{
// Твой код
// Именно твой!
} while (<условие>)
И не
Код:
do
while (<условие>)
{
  // что то там...
}
и не
Код:
{/* Что то там */}
do while (<условие>)
do - это repeat в Pascal
while - это until в Pascal
{ /* Твой код */ } - Это операторские скобки, если кода больше чем один оператор

Советую также перечитать раздел справочника конкретно по циклам.
С предусловием и постусловием.
psycho-coder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
работа со строками с++ LovingDaisy Общие вопросы C/C++ 0 11.01.2010 01:06
Работа с строками Fellics{новичок} Общие вопросы Delphi 5 28.05.2009 18:03
Работа со строками eR- Помощь студентам 2 23.02.2009 15:11
работа со строками Milker-Monster Помощь студентам 1 02.11.2008 21:32