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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 18:19   #1
vinternete
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 10
Вопрос Повторное выполнение программы (Си)

Написал задачку простую, но в условии говорится, что после выполнения необходимо дать возможность повторного решения задачи с другими данными, но как сделать незнаю
Код:
#include <stdio.h>
main()
{
	float a,b,c  ;
	int i,n;
	char ch;
	scanf("%d",&n);
           a=1.1;
	b=0.1;
	c=1.1;
	for(i=1;i<=n;i++)
	{
		c=c+b;
		a*=c;
		printf("%.3f\n",a);
	}
	
}
вот вторая часть, не полная
Код:
printf("Do you want to restart program? Y\\N?");
	ch=getchar();
	if(ch=='Y')
	{
            printf("restart");
		//perezapysk progi
	}
	else;
но в ней не хватает возврата к началу кода, и если вставить ее после цикла for, то на экран выведит сообщение с предложением,и закончит выполнение программы даже не запросив ввод для переменной ch
подскажите что вписать, чтобы повторить выполнение кода и как совместить эт две части
vinternete вне форума Ответить с цитированием
Старый 09.10.2010, 23:30   #2
vinternete
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 10
По умолчанию

в ожидании помощи от рускоязычных программеров решил поискать решение у англоязычных и нашел, выкладываю свою готовую задачу
оказалось все просто через цикл do-while
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
	
char ch;
        	do{
	            	float a,b,c  ;
	                int i,n;
                    printf("Enter N\n");
                 	scanf("%d",&n);
                    a=1.1;
	                b=0.1;
                 	c=1.1;
	                for(i=1;i<=n;i++)
					{
	                	c=c+b;
	                  	a*=c;
	                  	printf("%.3f\n",a);
					}           
	                        	fflush(stdin);
	                         	printf("\nDo you wish to restart program? (y/n)\n");
	                         	ch=getchar();
	                         
	 
			}while(ch=='y'||ch=='Y');
			if(ch!='y'||ch!='Y')
			printf("program is closed\n");
			

}
vinternete вне форума Ответить с цитированием
Старый 09.10.2010, 23:36   #3
Negent
Студент
Пользователь
 
Аватар для Negent
 
Регистрация: 11.06.2010
Сообщений: 39
По умолчанию

Чтобы использовать другие данные с тем же самым алгоритмом, необходимо применение шаблонов. Вот как выглядит это для простейшего случая обмена значений переменных между собой (C++, для C будь добр сам):

Код:
#include <iostream>
#include <vcl.h>

using namespace std;

template <class T>
void swap(T &x, T &y);

void main()
{
int a,b;
double c,d;
cout<<"\nEnter a, b (int):\n";
cin>>a>>b;
swap(a,b);
cout<<"a="<<a<<" b="<<b;
cout<<"\nEnter a, b (double):\n";
cin>>c>>d;
swap(c,d);
cout<<"c="<<c<<" d="<<d;
cout<<"\nPress <Enter>";
cin.get();
cin.get();
}
template <class T>
void swap(T&x, T&y)
{
T temp=x;
x=y;
y=temp;
}
В данном примере, осуществляется обмен значениями между переменными целого и вещественного типов. Причём эти переменные используют одну и ту же функцию. Компилятор, при выполнении программы, определяет тип переменной, с которой будет работать функция и выполняет подстановку вместо шаблонных типов - типы переменных. Это называется неявное указание типа.

Цитата:
Сообщение от vinternete Посмотреть сообщение
if(ch=='Y')
А если пользователь введёт Y или y? Следует отметить, что коды заглавных и строчных букв различаются. Поэтому необходимо переписать условие оператора соответствующим образом, добавив "ИЛИ".
"...Попытайся ухватить звёзды с небес, чем переживай, что до них не дотянуться..."

Последний раз редактировалось Stilet; 10.10.2010 в 11:19.
Negent вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение и выполнение программы grafgrial Общие вопросы Delphi 1 16.09.2010 16:25
Повторное выполнение макроса Jaroslav Microsoft Office Excel 3 26.07.2009 10:12
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33