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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2012, 19:32   #1
Kolaps
Пользователь
 
Регистрация: 21.04.2012
Сообщений: 15
Вопрос Функция

Всем добрый вечер.

Столкнулся с проблемой.
Не могу сообразить как переделать в функции ?

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

main(void)
{
int n=4, m=5, A[n][m],Z[4],P=1,o=1,min,max,i,j,k=0,q,sum;
//Заполняем массив
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("Elementi %d-%d\n",i+1,j+1);
scanf("%d",&A[i][j]);
}
}
//Вычисляем среднее по каждой нечетной строке (строки -это i, столбцы -j)
k=0;
for(i=0;i<n;i=i+2)
{
sum=0;

for(j=0;j<m;j++)
{
sum=sum+A[i][j];
}
Z[k]=sum/m;
k++;
}
//Находим произведение средних значений
for(i=0;i<k;i++)
{
P=P*Z[i];
}
printf("Proizvedenie=%d\n",P);

//Теперь вторая часть
//Находим произведение каждой строки
k=0;
for(i=0;i<n;i++)
{
P=1;
for(j=0;j<m;j++)
{
P=P*A[i][j];
}
k++;
Z[k]=P;
}
//Определяем мах значение произведения и строку
max=Z[0];
for(i=0;i<n;i++)
{
if(max<Z[i])
    {
    max=Z[i];
    q=i;
    }
}
// Находим мин элемент
i=q;
min=A[i][0];
for(j=0;j<m;j++)
{
if(min>A[i][j]) min=A[i][j];
}
printf("min=%d\n",min);
for(i=0;i<n;i++)
{
    for(j=0;j<m;j++)
    {
        printf("%5d",A[i][j]);
    }
    printf("\n");
}
getch();
}
Kolaps вне форума Ответить с цитированием
Старый 16.05.2012, 20:13   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Функцию. Не в функции, а функцию.

Код - это мысль программиста.
Пока программист мыслит через жёпку, код у него тоже будет через жёпку.

В данном случае, ты захотел чего то там переделать, но не удостоужился сообщить, что именно нужно, и что не так. Телепаты в отпуске
_Bers вне форума Ответить с цитированием
Старый 16.05.2012, 20:30   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2 _Bers
Цитата:
Телепаты в отпуске
Я уже неделю как вернулся.
Автор просит переписать код, разбить на функции
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 16.05.2012, 20:47   #4
Kolaps
Пользователь
 
Регистрация: 21.04.2012
Сообщений: 15
По умолчанию

pproger, именно это я и имел ввиду)
Kolaps вне форума Ответить с цитированием
Старый 16.05.2012, 21:44   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2 _Bers

Я уже неделю как вернулся.
Автор просит переписать код, разбить на функции
Портал не поощряет халяву.
Вот если бы автор попросил объяснить принципы, как самому такое сделать.
Таки нафег, ага.
_Bers вне форума Ответить с цитированием
Старый 16.05.2012, 22:08   #6
Kolaps
Пользователь
 
Регистрация: 21.04.2012
Сообщений: 15
По умолчанию

Код:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <float.h>
#define n 3
#define m 4
#define k 7
// описание типа “двумерный массив n x m”
typedef int matrica[n][m];
// прототипы фсех функций

void vivod_matr (int arr[][m], int str, int st);
void vvod_matr (matrica arr, int str, int st);
void vich (int arr[][m], int str, int st);
//основная программа
void main(void)
{

matrica matr;
int i,j;

puts("VVOD MATR");
vvod_matr(matr,n,m);
puts("VIVOD MATR");
vivod_matr(matr,n,m);
puts("Proizvedenie :");
vich(matr,n,m);
getch();
}
// функция ввода матрицы
void vvod_matr (matrica arr, int str, int st)
{
int i,j;
for(i=0;i<str;i++)
 for(j=0;j<st;j++)
  {
    printf("vvidi %d-%d el-nt ",i+1,j+1);
    fflush(stdin);
    scanf("%d",&arr[i][j]);
   // gotoxy(1,2);
  }
 printf("\n");
}


// функция вывода матрицы
void vivod_matr (int arr[][m], int str, int st)
{
int i,j;
for(i=0;i<str;i++)
 {
 for(j=0;j<st;j++)
  {
    printf("%2d ",arr[i][j]);
  }
  printf("\n");
 }
}

void vich(int arr[n][m], int str, int st)
{
    //Вычисляем среднее по каждой нечетной строке (строки -это i, столбцы -j)

int k=0,q,max,i,j,P,Z[k];
//k=0;
for(i=0;i<str;i=i+2)
{
sum=0;

for( j=0;j<st;j++)
{
sum=sum+arr[i][j];
}
Z[k]=sum/m;
k++;
}
//Находим произведение средних значений
for(i=0;i<k;i++)
{
P=P*Z[i];
}
printf("Proizvedenie=%d\n",P);

//Теперь вторая часть
//Находим произведение каждой строки
k=0;
for(i=0;i<n;i++)
{
P=1;
for(j=0;j<m;j++)
{
P=P*arr[i][j];
}
k++;
Z[k]=P;
}
//Определяем мах значение произведения и строку
max=Z[0];

for(i=0;i<n;i++)
{
if(max<Z[i])
    {
    max=Z[i];
    q=i;
    }
}
}
НУ вот код, я не понимаю что не так.
Компилятор выдает ошибку на скобку, хотя все нормально!
Kolaps вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция marme Общие вопросы C/C++ 2 22.12.2010 22:35
Функция MilenaR Помощь студентам 5 10.05.2010 20:43
функция пз Ирина Общие вопросы Delphi 0 05.04.2010 23:22
функция Lemo Помощь студентам 7 24.10.2008 12:54
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50