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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2009, 23:09   #1
серг
Форумчанин
 
Регистрация: 02.11.2009
Сообщений: 179
По умолчанию РАБОТА С ФУНКЦИЯМИ В С++

Вот две проги никак не могу сделать так чтобы они работали через функцию компилятор все время чертыхается

№1
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<clocale>

void main ()
{
setlocale(LC_ALL, "Russian");
int i;
int mas[20];
int *MAS=mas;
int ch=0;
int n=0;
{
for (i=0;i<=19;i++)
*(MAS+i)=rand()%100;
{
for (i=0;i<=19;i++)
printf(" %d",*(MAS+i));
printf(" ");

}
for (i=0;i<=19;i++)
if (*(MAS+i)%2==0)
ch=ch++;
else n=n++;
}
printf("Число четных элементов равно: %d",ch);
printf(" \n");
printf("Число нечетных элементов равно: %d",n);
getch();
}
[/CODE]
№2
Код:
#include<stdio.h>                 
#include<conio.h>                      
#include<stdlib.h>
#include <iostream>
using namespace std;


int main(int argc, char* argv[])//параметр argv является указателем на массив указателей на строки
         //Параметр argc содержит количество аргументов в командной строке и является целым числом
{
	int i,j,N,M; 
	double* mas; 
	N=10; M=6;// Размерность масива 
	mas = new double [N*M]; // Резервирование памяти для динамического массива
	
	// Заполнение массива
	for (i=0;i<N;i++)	
	   	   for (j=0;j<M;j++)
				*(mas+i*M+j)=rand()%200-100;
	

	// Вывод заполненого массива на экран
	for (i=0;i<N;i++)	
	   	   {
			for (j=0;j<M;j++)
				{
				cout<<*(mas+i*M+j)<<"\t";
				}
			cout<<"\n";
			}

	// находим отрицательные элементы массива и если элемент меньше нуля то умножается на -1 (получается положительный)
		for (i=0;i<N;i++)	
	   	   	for (j=0;j<M;j++)
				if (*(mas+i*M+j)<0)
					*(mas+i*M+j)=*(mas+i*M+j)*(-1);
				
			cout<<"\n";
	// Вывод массива
		for (i=0;i<N;i++)	
	   	   {
			   for (j=0;j<M;j++)
				{
				cout<<*(mas+i*M+j)<<"\t";
				}
			cout<<"\n";
			}

		delete [] mas; // Освобождение памяти
		getch();
}
подскажите пожалуйста как это правильно делается ПОМОГИТЕ ДЕБИЛУ РАЗОБРАТЬСЯ В ТЕМЕ ))
серг вне форума Ответить с цитированием
Старый 07.12.2009, 23:14   #2
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

не пора уже забанить товарища?
десять одинаковы тем про массивы и указатели было, теперь еще четыре одинаковые про функции...давай уж сразу до десятка округляй
m0nax вне форума Ответить с цитированием
Старый 07.12.2009, 23:22   #3
серг
Форумчанин
 
Регистрация: 02.11.2009
Сообщений: 179
По умолчанию

все кароч круглить не буду
серг вне форума Ответить с цитированием
Старый 03.03.2010, 16:09   #4
mannheimer
Новичок
Джуниор
 
Аватар для mannheimer
 
Регистрация: 02.03.2010
Сообщений: 4
По умолчанию

Опишите условие обеих задач.
mannheimer вне форума Ответить с цитированием
Старый 03.03.2010, 22:26   #5
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Вот тебе пример на основе твоего кода
Код:
#include<stdio.h>                 
#include<conio.h>                      
#include<stdlib.h>
#include <iostream>
using namespace std;
double * RandomF(int M,int N,double *mas);
void View(int M,int N,double *mas);

int main(int argc, char* argv[])//параметр argv является указателем на массив указателей на строки
         //Параметр argc содержит количество аргументов в командной строке и является целым числом
{
	int i,j,N,M; 
	double* mas; 
	N=10; M=6;// Размерность масива 
	mas = new double [N*M]; // Резервирование памяти для динамического массива
	mas= RandomF(M,N,mas);
         View(M,N,mas);
	
	// находим отрицательные элементы массива и если элемент меньше нуля то умножается на -1 (получается положительный)
		for (i=0;i<N;i++)	
	   	   	for (j=0;j<M;j++)
				if (*(mas+i*M+j)<0)
					*(mas+i*M+j)=*(mas+i*M+j)*(-1);
				
			cout<<"\n";
	// Вывод массива
		for (i=0;i<N;i++)	
	   	   {
			   for (j=0;j<M;j++)
				{
				cout<<*(mas+i*M+j)<<"\t";
				}
			cout<<"\n";
			}

		delete [] mas; // Освобождение памяти
		getch();
}
double * RandomF(int M,int N,double *mas)
{
       // Заполнение массива
	for (i=0;i<N;i++)	
	   	   for (j=0;j<M;j++)
				*(mas+i*M+j)=rand()%200-100;
        return mas;
}
void View(int M,int N,double *mas)
{
       // Вывод заполненого массива на экран
	for (i=0;i<N;i++)	
	   	   {
			for (j=0;j<M;j++)
				{
				cout<<*(mas+i*M+j)<<"\t";
				}
			cout<<"\n";
			}
     
}
писал сразу в окне сообщения(не исключаю мелкие ошибки),но смысл должен быть понятен,ну а дальше сам арбайтен,арбайтен..)))
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите с функциями Mikimaus Общие вопросы C/C++ 1 16.11.2009 12:58
Помощь с функциями A93 Общие вопросы C/C++ 6 05.10.2009 11:19
работа с процедурами и функциями. Tanushka5606 Паскаль, Turbo Pascal, PascalABC.NET 2 06.05.2009 23:01
работа со строковыми процедурами и функциями pooharilo Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2008 23:51
Работа с функциями Worms Общие вопросы Delphi 1 02.12.2007 15:51