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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2011, 18:55   #1
L.M.
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 16
По умолчанию Одномерные массивы как строки; на ЯП Си, среда – Borland C++5.02

Нужна помощь в решении задачи:
В тексте найти слова, длина которых – простое число, и заменить их звездочками. Вывести исходный и преобразованный тексты.

Пыталась сделать сама:

Код:
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
void main(void)
{
char str[50];
char a[100];
int n,i;
clrscr();
      CharToOem("\n	Введите исходный текст:",str);
   	puts(str);
		gets(a);
		n=strlen(a);

int  count=0, index=0;
    for (i=0; i<n; i++)
    {
        if (a[i]!=' ')
       	   count++;
        else
        {

          int k=0;
    			 for (i=2; i<count; i++)
      			 {
        				if (count%i == 0) k++;
            	 }
    			 if (k == 0 )
            	{
            		for(i=index;i<index+count;i++)
            		a[i]='*';
            	}
            count=0;
            index=i+1;
            
        }
    }
    	 CharToOem("\n	Передланный текст:",str);
		puts(str);
     	printf(a);

getch();
}
никаких ошибок не выдаёт,но как-то странно работает через раз

Последний раз редактировалось Stilet; 04.07.2011 в 19:52.
L.M. вне форума Ответить с цитированием
Старый 04.07.2011, 19:56   #2
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

Может быть, заменить:
count=0;
index=i+1;
на
index+=count+1;
count=0;
l1pton17 вне форума Ответить с цитированием
Старый 04.07.2011, 19:57   #3
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

Так как сюда мы не всегда попадаем:
if (k == 0 )
{
for(i=index;i<index+count;i++)
a[i]='*';
}

и получается, что в i может быть index+count или count
l1pton17 вне форума Ответить с цитированием
Старый 04.07.2011, 20:20   #4
L.M.
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 16
По умолчанию

спасибо...вроде сама справилась...

PHP код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
void main(void)
{
char str[50];
char a[100];
int n,i;
clrscr();
    
CharToOem("\n    Введите исходный текст:\n",str);
       
puts(str);
        
gets(a);
        
n=strlen(a);
          
clrscr();
   
CharToOem("\n\n    Исходный текст:\n",str);
        
puts(str);
         
printf(a);
int  count=0index=0;
    for (
i=0i<n+1i++)
    {
        if (
a[i]!=' ' && a[i]!='\0')    \\учла,что слово может заканчиваться не только,если после него идет пробел,но и если оно последние и после него идёт нуль-терминатор)
              
count++;
        else
        {

          
int k=0;
                 for (
int j=2j<countj++)   \\просто сдесь ввела j вместо i
                   
{
                        if (
count%== 0k++;
                 }
                 if (
== && count!= 1)   \\учла,что 1 не является простым числом
                
{
                    for(
i=index;i<index+count;i++)
                    
a[i]='*';
                }
              
count=0;
            
index=i+1;
        }
    }
         
CharToOem("\n\n    Передланный текст:\n",str);
        
puts(str);
         
printf(a);

getch();

L.M. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы; на ЯП Си, среда – Borland C++5.02 L.M. Помощь студентам 18 01.07.2011 17:07
Borland Pascal одномерные массивы maksim-2804 Паскаль, Turbo Pascal, PascalABC.NET 1 20.06.2011 16:15
Delphi.Одномерные массивы,циклы,символы и строки. specnazkin Помощь студентам 1 12.01.2011 12:19
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Одномерные массивы и строки Magnit Паскаль, Turbo Pascal, PascalABC.NET 4 12.04.2007 15:04