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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2010, 12:46   #1
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
Вопрос Как можно изменить эту функцию(код)?

Подскажите,что я сделал не правильно?
По заданию сказано: Создайте фунцию,кот.обычно принимает один аргумент-адрес строки-и выводит эту строку один раз.Однако если задан второй аргумент типа int, не равный нулю,то эта функция выводит строку столько раз,сколько было осуществлено вызовов этой функции к моменту её данного вызова(Обратите внимание,что кол-во выводимых строк не равно значению второго аргумента,оно равно числу вызовов функции к моменту последнего вызова.)
Как я понял нужно создать структуру,где будет сохранятся кол-во обращений к функции,но у меня не получается выполнить условие по самому заданию(не знаю где и как использовать 2-й аргумент=()...

#include <cstdlib>
#include <iostream>
const int arsize=80;
using namespace std;
struct StrCount
{

char Sname[arsize];
int used;
};
const StrCount & Func(StrCount & par);

int main(int argc, char* argv[])
{
StrCount perOne = {"Rabotaet function",0};
cout<<"1-vizov\n";
Func(perOne);
cout<<"2-vizov\n";
Func(perOne);
cout<<"3-vizov\n";
Func(perOne);
system("PAUSE");
return EXIT_SUCCESS;
}
const StrCount & Func(StrCount & par)
{
for(int i=0;i<=par.used;i++)
cout<<par.Sname<<endl;
par.used++;
return par;
}

Последний раз редактировалось -ushёl-; 09.04.2010 в 12:49.
-ushёl- вне форума Ответить с цитированием
Старый 09.04.2010, 13:05   #2
evgn
Разрабатываюсь....
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 68
По умолчанию

Код:
void func(char *s,int t = 0)
{
      static int cnt = 0;
      if(t != 0){
              for(int i = 0;i < cnt;i++)
              {
                     cout<<s<<endl;
              }
      } else cout<<s<<endl;
      c++;
}

int main(int argc, char* argv[])
{
     func("1...");
     func("2...");
     func("3...");
     func("123...",1);
}

Последний раз редактировалось evgn; 09.04.2010 в 13:07.
evgn вне форума Ответить с цитированием
Старый 09.04.2010, 13:07   #3
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
#include <cstdlib>
#include <iostream>

const int arsize=80;

using namespace std;

struct StrCount
{
	char Sname[arsize];
	int used;
};

const StrCount & func(StrCount & par);

int main(int argc, char* argv[])
{
	StrCount perOne = {"Rabotaet function 1",0};
	StrCount perTwo = {"Rabotaet function 2",0};
	StrCount perThree = {"Rabotaet function 3",0};
	func(perOne);
	func(perOne);
	func(perOne);
	func(perTwo);
	func(perThree);
	func(perOne);
	system("PAUSE");
	return EXIT_SUCCESS;
}

const StrCount & func(StrCount & par)
{
	if(par.used == 0)
		cout<<par.Sname<<endl;
	else
		for(int i=0;i<par.used;i++)
			cout<<par.Sname<<endl;
	par.used++;
	return par;
}
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer

Последний раз редактировалось Ozerich; 09.04.2010 в 13:12.
Ozerich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли объявлять функцию в функции? Как в делфи... TwiX Общие вопросы C/C++ 5 28.10.2009 22:54
Как можно реализовать эту программку в NetBeans Taisja Помощь студентам 1 14.05.2009 14:47
Как можно изменить автора программы xReactions Общие вопросы Delphi 0 03.05.2008 09:25
Можно ли вообще изменить exe-файл, если да то как? Скуби-ду Общие вопросы Delphi 6 10.04.2007 07:56