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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2010, 22:51   #1
toliabest
Пользователь
 
Регистрация: 06.05.2009
Сообщений: 14
Радость Преобразовать в функции

Есть программа:

Код:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
struct student
{
	char name[20];
    char np[20];
	int CP;
};
struct predmet
{
	char np[20];
};
int main()
{
int a,i,j,N,M,matr[10][10];
char ch;
float C,B,F;

//int B;
student x;
student *ps;
student *pr;
predmet *pc;
srand(time (NULL));
printf("*************************************\n");
printf("*Examination Work(Programm creating)*\n");
printf("*************************************\n");
printf("Enter first information/Vvedite nachalnie dannie:\n");
printf("Number of students - ");
scanf("%d", &N);
printf("Number of subjects/kolichestvo predmetov - ");
scanf("%d", &M);
G:ch=getchar();
printf("\n1 --> Names/Imena;\n2 --> Subjects/Predmeti;\n3 --> Marks/Ocenki;\n4 --> Information/Informacia;\n5 --> Result/Rezultat.\n6 --> Exit/Vihod.\n");
printf("Please Enter Number/pojaluista vvedite nomer vibrannogo varianta\n");
int flags[50];
F=0;

B=0;

do
{
scanf("%d",&a);
if (a==1) 
{	
	ps = new student [N];
	for (j=0; j<N; j++)
	{
		printf("\n Name of %d student: ", j+1);
		scanf("%s", (ps+j)->name);
	}
	printf("\n");
}
if (a==2) 
{	
	pc = new predmet [M];
	for (i=0; i<M; i++)
	{
		printf("\n Name of %d subject ", i+1);
		scanf("%s", (pc+i)->np);
	}
	printf("\n");
}
if (a==3) 
{ 
	
	{
		srand(time(NULL));
		for (i=0; i<M; i++)
		{
			for (j=0; j<N; j++)	
			{			
				matr[i][j]=rand()%5+1;
				//matr[i][j]=5;
				printf("\t%d\t ", matr[i][j]);
  			}
		}
	}
	printf("\n");printf("\n");
}
if (a==4) 
{	
	for (i=0; i<M; i++)
		printf("\t%s\t",(pc+i)->np);
	printf("\n");			
	for (i=0; i<M; i++)
	{
		for (j=0; j<N; j++)			
		{
			printf("\t%d\t ", matr[i][j]);
		}
             printf("%s\n",(ps+i)->name);
	}
	printf("\n");printf("\n");
}
if (a==5) 
{  
   for(i=0;i<M;i++)
	{
		flags[i]=1;
		for(j=0;j<N;j++)
		{
			if(!((matr[j][i]==5)||(matr[j][i]==4)))
				flags[i]=0;
		}
              if (flags[i]==1)
             printf((ps+i)->name," ");
			  printf("\n");
	}

}
	
if (a==6) 
{
	printf("Bye-bye!\n");
	return 0;
}
if (a>6) 
{	
	printf("Critical ERROR");printf("\n");printf("\n");
}
}
while(a!=6);
return 0;
}

Нужно переделать чтобы она работала по функциям. Ребят, помогите пожалуйста!
Вот все такие части нужно переделать в функции, не знаю как (((
Код:
if (a==1) 
{	
	ps = new student [N];
	for (j=0; j<N; j++)
	{
		printf("\n Name of %d student: ", j+1);
		scanf("%s", (ps+j)->name);
	}
	printf("\n");
}

Если вам не трудно помогите или объясните .
toliabest вне форума Ответить с цитированием
Старый 20.05.2010, 22:11   #2
justso
Инженеришка
Форумчанин
 
Аватар для justso
 
Регистрация: 18.05.2010
Сообщений: 147
По умолчанию

Мож потому что лень бесплатно, потому никто и не помогает.
Ацко 342512564: Если по делу - то в случае острой необходимости. Если просто так - то в любое время.
justso вне форума Ответить с цитированием
Старый 20.05.2010, 22:39   #3
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Сообщение от justso Посмотреть сообщение
Мож потому что лень бесплатно, потому никто и не помогает.
Не. Программа очень сложная. Даже я боюсь её делать.
Carbon вне форума Ответить с цитированием
Старый 20.05.2010, 23:02   #4
toliabest
Пользователь
 
Регистрация: 06.05.2009
Сообщений: 14
По умолчанию

Код:
if (a==1) 
{	
	ps = new student [N];
	for (j=0; j<N; j++)
	{
		printf("\n Name of %d student: ", j+1);
		scanf("%s", (ps+j)->name);
	}
	printf("\n");
}

Я всё понимаю, а вот этот код тяжело в функцию переделать?
toliabest вне форума Ответить с цитированием
Старый 20.05.2010, 23:05   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
void f1(student* ps, int N)
{	
	ps = new student [N];
	for (int j=0; j<N; j++)
	{
		printf("\n Name of %d student: ", j+1);
		scanf("%s", (ps+j)->name);
	}
	printf("\n");
}
//...
if (a == 1)
   f1(ps, N);
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.05.2010, 00:42   #6
toliabest
Пользователь
 
Регистрация: 06.05.2009
Сообщений: 14
По умолчанию

Посмотрите пожалуйста я переделал в функции все что мне нужно
только когда я нажимаю цифру 4 не срабатывает эта функция, а так прога работает, вставьте себе в компилятор и посмотрите пожалуйста в чем дело.

Код:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

struct student
{
	char name[20];
    char np[20];
	int CP;
};
struct predmet
{
	char np[20];
};
void f1(student *ps, int N)
{	


	ps = new student [N];
	for (int j=0; j<N; j++)
	{
		printf("\n Name of %d student: ", j+1);
		scanf("%s", (ps+j)->name);
	}
	printf("\n");
}

void f2(predmet *pc, int M)
{	
int i;

	pc = new predmet [M];
	for (i=0; i<M; i++)
	{
		printf("\n Name of %d subject ", i+1);
		scanf("%s", (pc+i)->np);
	}
	printf("\n");
}
void f3(int M, int N)
{ 
	int i,j,matr[10][10];

	{
		srand(time(NULL));
		for (i=0; i<M; i++)
		{
			for (j=0; j<N; j++)	
			{			
				matr[i][j]=rand()%5+1;
				//matr[i][j]=5;
				printf("\t%d\t ", matr[i][j]);
  			}
		}
	}
	printf("\n");printf("\n");
}
void f4(int M, int N, predmet *pc, student *ps)
{	int i,j,matr[10][10];


	for (i=0; i<M; i++)
		printf("\t%s\t",(pc+i)->np);
	printf("\n");			
	for (i=0; i<M; i++)
	{
		for (j=0; j<N; j++)			
		{
			printf("\t%d\t ", matr[i][j]);
		}
             printf("%s\n",(ps+i)->name);
	}
	printf("\n");printf("\n");
}
void f5(int M, int N, student *ps)
{  
int i,j,matr[10][10];
int flags[50];

   for(i=0;i<M;i++)
	{
		flags[i]=1;
		for(j=0;j<N;j++)
		{
			if(!((matr[j][i]==5)||(matr[j][i]==4)))
				flags[i]=0;
		}
              if (flags[i]==1)
             printf((ps+i)->name," ");
			  printf("\n");
	}
}




int main()
{
int a,N,M;
char ch;

student *ps=0;
predmet *pc=0;
printf("*************************************\n");
printf("*Examination Work(Programm creating)*\n");
printf("*************************************\n");
printf("Enter first information/Vvedite nachalnie dannie:\n");
printf("Number of students - ");
scanf("%d", &N);
printf("Number of subjects/kolichestvo predmetov - ");
scanf("%d", &M);
ch=getchar();
printf("\n1 --> Names/Imena;\n2 --> Subjects/Predmeti;\n3 --> Marks/Ocenki;\n4 --> Information/Informacia;\n5 --> Result/Rezultat.\n6 --> Exit/Vihod.\n");
printf("Please Enter Number/pojaluista vvedite nomer vibrannogo varianta\n");


do
{
scanf("%d",&a);

if (a == 1)
f1(ps, N);
if (a == 2)
f2(pc, M);
if (a==3) 
f3(M, N);
if (a==4) 
f4(M,N,pc,ps);
if (a==5) 
f5(M,N, ps);
	
if (a==6) 
{
	printf("Bye-bye!\n");
	return 0;
}
if (a>6) 
{	
	printf("Critical ERROR");printf("\n");printf("\n");
}
}
while(a!=6);
return 0;
}

Последний раз редактировалось toliabest; 21.05.2010 в 01:06.
toliabest вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
преобразовать столбец maxillion Microsoft Office Excel 1 12.05.2010 16:33
преобразовать в код С++ daniil2010 Помощь студентам 2 22.04.2010 15:33
преобразовать число Cpluser Общие вопросы C/C++ 1 20.12.2009 14:53
Преобразовать в дату Marvel Microsoft Office Excel 21 22.01.2009 06:42
ПРЕОБРАЗОВАТЬ malevich Общие вопросы Delphi 1 07.12.2006 21:08