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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.05.2010, 06:56   #1
Cruelbob
Новичок
Джуниор
 
Регистрация: 10.05.2010
Сообщений: 2
По умолчанию поправить код!

1)На вход программе подаётся строка не более чем из 200.Требуется написать программу которая расставит буквы входной строки в порядке их повторяемости,если 2 буквы повторяются одинаковое число раз то надо расставить их в алфавитном порядке.
Код:
#include <stdio.h> 

struct SH{ 
char a; 
int b; 
}; 

int main(){ 
SH s[28]; 
char c[200],d[28]="abcdefghijklmnopqrstuvwxyz"; 
int i,j; 
for(i=0;i<26;i++) 
{s[i].b=0;} 
scanf("%s",&c); 
for(i=0;i<26;i++) 
{s[i].a=d[i];} 
for(i=0;i<200;i++) 
{for(j=0;j<26;j++) 
{if(c[i]==s[j].a){s[i].b=s[i].b+1;}}} 
int k,x,minn; 
minn=s[0].b; 
for(i=0;i<26;i++) 
{if(s[i].b<minn){minn=s[i].b;}} 
for(i=0;i<26;i++) 
{k=i; x=s[i].b; 
for(j=i+1;j<26;j++) 
{if (s[j].b<x){k=j;x=s[j].b;} 
s[k].b=s[i].b;s[i].b=x;}} 
for(i=0;i<26;i++) 
{printf("\n%s",s[i].a);} 
printf("."); 
return(0); 
}
2)На вход программе дается строка из 200 символов заканчивающаяся точкой. Берется колво букв в самом коротком слове = a. А потом каждая буква в этой строке заменяется на букву стояющую на "а" букв ранее в алфавите...алфавит циклический, тоесть перед a идет z.
Код:
#include <stdio.h> 
#include <conio.h> 

int main() 
{ 

printf("Vvedite stroku \n"); 

char z[200],s='.',p=' '; 

scanf("%s",&z); 

int i,x=0,m=200,j; 

for(i=0;i<200;i++) 
{if(z[i]==s) 
{break;} 
if(z[i]!=p) 
{x=x+1;} 
else 
{if(x>0) 
{if(x<m) 
{m=x;}} 
x=0;} 
} 

char a[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; 
char b[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; 
for(i=0;i<200;i++) 
{if(z[i]==s) 
{break;} 
for(j=0;j<26;j++) 
{if(z[i]==p) 
{break;} 
if(z[i]==a[j]) 
{if(j<m) 
{z[i]=a[25+j-m];} 
else 
{z[i]=a[j-m];}} 
if(z[i]==b[j]) 
{if(j<m) 
{z[i]=b[25+j-m];} 
else 
{z[i]=b[j-m];}} 
}} 

printf("\n"); 

printf("%s",z); 

getch(); 

return(0); 
}
Cruelbob вне форума
Старый 12.05.2010, 08:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
которая расставит буквы входной строки в порядке их повторяемости
т.е. тупо отсортировать и хватит?
I'm learning to live...
Stilet вне форума
Старый 12.05.2010, 10:04   #3
Aronax
Пользователь
 
Регистрация: 03.07.2009
Сообщений: 45
По умолчанию

вы бы поточнее указали где и что работает не правильно

Последний раз редактировалось Aronax; 12.05.2010 в 10:11.
Aronax вне форума
Старый 12.05.2010, 10:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не собираюсь ниче указывать, я пытаюсь понять что тебе нужно.
Я бы твою первую задачу решил просто методом сортировки символов в строке и не морочил голову.
I'm learning to live...
Stilet вне форума
Старый 12.05.2010, 10:54   #5
Aronax
Пользователь
 
Регистрация: 03.07.2009
Сообщений: 45
По умолчанию

эмм а я то тут причем :D я автора просил уточнить, чтобы тоже понять что ему нужно :D
Aronax вне форума
Старый 12.05.2010, 19:58   #6
Cruelbob
Новичок
Джуниор
 
Регистрация: 10.05.2010
Сообщений: 2
По умолчанию

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

Во второй задачи работает неправильно алгоритм подсчета букв в самом коротком слове... пепеменная колва букв - m

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я не собираюсь ниче указывать, я пытаюсь понять что тебе нужно.
Я бы твою первую задачу решил просто методом сортировки символов в строке и не морочил голову.
можешь описать метод?

Последний раз редактировалось Stilet; 17.05.2010 в 07:26.
Cruelbob вне форума
Старый 12.05.2010, 23:33   #7
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Язык какой, C или C++ ? =)
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно поправить код kimoncar PHP 0 13.04.2010 12:52
Поправить Код... Lucchese Общие вопросы C/C++ 1 25.01.2010 20:00
Помогите поправить код связанный с копированием нескольких папок daget Компоненты Delphi 3 24.12.2009 21:01
Одномерные массивы на C. Поправить код. STS_1991 Помощь студентам 2 05.03.2009 16:59
Помогите поправить код SANTA_KLAUD Общие вопросы Delphi 5 30.05.2008 09:01