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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2009, 22:53   #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();
}
№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:42   #2
osichev
Форумчанин
 
Регистрация: 18.05.2009
Сообщений: 180
По умолчанию

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

void main ()
{
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++; }
   else 
   if (*(MAS+i)%2!=0) {n++;  }
}
printf("\nЧисло четных элементов равно: %d",ch);
printf(" \n");
printf("\nЧисло нечетных элементов равно: %d",n);
}
Переправь у себя:

Код:
for (i=0;i<=19;i++)
if (*(MAS+i)%2==0) {
ch++; }
else 
if (*(MAS+i)%2!=0) {n++; }
}
Программист без пива, как спирт без пробки - выдохнется___________-

Последний раз редактировалось Stilet; 08.12.2009 в 08:13.
osichev вне форума Ответить с цитированием
Старый 07.12.2009, 23:46   #3
osichev
Форумчанин
 
Регистрация: 18.05.2009
Сообщений: 180
По умолчанию

Вроде всё нормально работает:
Код:
#include<stdio.h>                 
#include<conio.h>                      
#include<stdlib.h>
#include <iostream.h>


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; // Освобождение памяти
}
Программист без пива, как спирт без пробки - выдохнется___________-

Последний раз редактировалось Stilet; 08.12.2009 в 08:13.
osichev вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учимся правильно работать Gromsky WordPress и другие CMS 2 11.09.2009 14:27
ХАРДЫ ВМЕСТЕ НЕ ХОТЯТ РАБОТАТЬ ПРАВИЛЬНО... suncity Компьютерное железо 6 30.07.2009 13:05
Как правильно работать с методом PrintOut? Stilet Microsoft Office Word 6 09.07.2009 09:11
Не понимаю как работать с функциями. Миша Помощь студентам 4 26.12.2008 12:20
как правильно работать с массивом TStrings Air Общие вопросы Delphi 6 19.12.2007 17:55