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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2014, 23:31   #1
Pantheon
Новичок
Джуниор
 
Регистрация: 12.03.2014
Сообщений: 2
По умолчанию Строка с положительными числами, разделенными пробелами. Составить новую строку из чисел фибоначчи (на С)

Суть задачи: дана строка, содержащая положительные числа, разделенные пробелами. Составить новую строку из чисел первой строки, которые являются числами последовательности фибоначчи.
Вроде все написал, но крашится. Посмотрите пожалуйста, что не так.
В работоспособности функций уверен.
Код:
#include <iostream>
#include <conio.h>
using namespace std;
#include <string.h>
int perevod(char *a)
{
	int i,p,s,x;
	s=0;
	p=1;
	int q=strlen(a);
	for(i=1;i<q;i++)
		p=p*10;
	for(i=0;i<q;i++)
	{
		x=a[i];
		s=s+(x-48)*p;
		p=p/10;
	}
	return s;

}
bool fib(int x)
{
	int a1,a2,a3,a,b;
	a1=1;
	a2=1;
	a3=2;
	if (x>1)
		while (x>a3)
		{
			a=a2; 
			b=a3;
			a3=a1+a2;
			a2=b;
			a1=a;
		}
	else return true;
	if (x==a3)
		return true;
	else return false;
}
int main()
{
	char str1[]="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20";
	char str[255];
	char a[10];
	int i,j,k,x,y;
	i=0;
	j=0;
	x=strlen(str1);
	while (i<x)
	{
		if (str1[i]!=' ')
	    {
				while (str1[i]!=' ')
			    {
				    a[j]=str1[i];
				    i++;
				    j++;
			    }
			    y=perevod(a);
				a[j+1]='\0';
			    if (fib(y)) 
				     strcpy(str,a);
				for(k=0;k<j;k++)
					a[k]=' ';
				str[j]=' ';
				j=0;
		}
		i++;
	}
	x=strlen(str);
	for(i=0;i<x;i++)
	   printf("%s",str[i]);
	system("pause");
	return 0;
}


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 12.03.2014 в 23:35.
Pantheon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить массив из всех простых чисел, лежащих между заданными натуральными числами ( Pascal ) Evelin_18 Помощь студентам 1 22.03.2013 10:37
Составить новую строку из данных слов Elementary Помощь студентам 3 08.11.2012 22:01
Составить строку символов, лексико-графически упорядочив слова исходной строки и разделив их пробелами (С++) trum Помощь студентам 0 20.03.2012 01:01
текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С) lady_koshe4ka Помощь студентам 0 30.06.2011 12:20
разброс с отрицательными и положительными числами Leshiy1 Паскаль, Turbo Pascal, PascalABC.NET 11 03.01.2011 05:31