Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Toxic
0 / 0 / 0
Регистрация: 19.10.2009
Сообщений: 14
#1

Написать функцию - C++

10.12.2010, 17:54. Просмотров 700. Ответов 10
Метки нет (Все метки)

Написать функцию swap (A,B), меняющую местами максимальные элементы матриц A и B. (Считать, что в каждой матрице только один элемент максимальный).
Я писал функцию с глобальными переменными, а вот как с локальными незнаю точнее непойму как.
Если нетрудно то пожалуйста тест программы с некоторыми пояснениями наподобии "вот локальные переменные"
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2010, 17:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию (C++):

Написать функцию, которая, в зависимости от выбора пользователя вызывает соответствующую функцию - C++
Помогите, что то я не могу понять задачи, даже не знаю с чего начать)))) 5. Написать функцию, которая, в зависимости от выбора...

Написать функцию, которая могла бы передать значение в другую функцию - C++
как сделать функцию которая бы могла передать значеие в другую функцию ну к примеру a=4*b; где b=sin(fi);

не могу разобраться как написать функцию сортировки и исправить функцию добавления в стек - C++
#include <iostream> #include<Windows.h> using namespace std; struct NE{ int x; NE *pnext,*ppor,*cur;}; class SPISOK { NE...

Написать функцию, которая, в зависимости от выбора пользователя вызывает функцию сложения, произведения - C++
Кто знает как можно решить эту задачу на С++? Написать функцию, которая, в зависимости от выбора пользователя вызывает функцию сложения,...

рекурсия.написать функцию,принимающую указ. на другую функцию, осуществл. некую операцию с переданным х - C++
рекурсия.написать функцию,принимающую указ. на другую функцию, осуществл. некую операцию с переданным х. прога должна иметь вид...

Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда, описать функцию IsSquare(K) - C++
Здравствуйте, нужна помощь по решению двух зачад в TC++(Turbo C++); Задача 1. Написать функцию, которая вычисляет объем и площадь...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.12.2010, 18:35 #2
покажите то что у вас есть
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
10.12.2010, 18:52 #3
C
1
2
3
4
5
6
7
8
9
int main ()
{int **a, **b, n,m; 
 n=3; m=3;  //  вот локальная переменная
   // выделение памяти для двумерного массива а и b
swap (a,b,n,m) // вызов функции
 
 
return 0;
}
Toxic
0 / 0 / 0
Регистрация: 19.10.2009
Сообщений: 14
12.12.2010, 13:50  [ТС] #4
Добавлено через 43 секунды
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "stdafx.h"
#include "stdlib.h"
 
int A[3],B[3],i;
void swap()
{   
int maxA,maxB,c,maxa_i,maxb_i;
maxa_i=0;
maxb_i=0;
maxA=1;
maxB=1;
c=0;
for (i=0;i<3;i++)
{
    
A[i]=rand()%30;
B[i]=rand()%30;
printf ("A[%i] = %i   B[%i] = %i\n",i,A[i],i,B[i]);
};
    for (i=0;i<3;i++)
    {
        if (maxa_i<A[i]) { maxa_i=A[i]; maxA=i;};
        if (maxa_i<B[i]) {maxb_i=B[i]; maxB=i;};
        };
c=A[maxA];
A[maxA]=B[maxB];
B[maxB]=c;
    
printf ("\n");
for (i=0;i<3;i++)
printf ("A[%i] = %i   B[%i] = %i\n",i,A[i],i,B[i]);
 
}
int main()
{
swap();
}
Вот вобщемто мой вариант, но вот как сделать чтоб работало с локальными у меня так и неполучилось.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.12.2010, 14:02 #5
Toxic, так у васм нету матриц. Вы используете одномерные массивы!!!!
Toxic
0 / 0 / 0
Регистрация: 19.10.2009
Сообщений: 14
12.12.2010, 14:08  [ТС] #6
ну так я вроде и неговорил что поменять местами макс. элементы двух матриц. У меня проблема с написанием в функции локальных переменных и вызовом их в самой программи
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.12.2010, 16:15 #7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "stdafx.h"
#include "stdlib.h"
 
 
void swap(int *A, int *B)
{       
int i=0;
int maxA,maxB,c,maxa_i,maxb_i;
maxa_i=0;
maxb_i=0;
maxA=1;
maxB=1;
c=0;
for (i=0;i<3;i++)
{
        
A[i]=rand()%30;
B[i]=rand()%30;
printf ("A[%d] = %d   B[%d] = %d\n",i,A[i],i,B[i]);
};
        for (i=0;i<3;i++)
        {
                if (maxa_i<A[i]) { maxa_i=A[i]; maxA=i;};
                if (maxa_i<B[i]) {maxb_i=B[i]; maxB=i;};
                };
c=A[maxA];
A[maxA]=B[maxB];
B[maxB]=c;
        
printf ("\n");
for (i=0;i<3;i++)
printf ("A[%d] = %d   B[%d] = %d\n",i,A[i],i,B[i]);
 
}
int main()
{int A[3],B[3]; // локальные объявления
swap(A,B);     //  отправляем в функцию указатель на первый элемент
}
вот пожалуйста с локальными данными
только у Вас нет матриц, не смотря на то, что у Вас одномерный массив
еще что-нибудь переделать???
Toxic
0 / 0 / 0
Регистрация: 19.10.2009
Сообщений: 14
12.12.2010, 19:16  [ТС] #8
Спасибо большое.

Добавлено через 24 минуты
хотя нет вот ещё одна задачка.
Найти наибольший и наименьший элементы матрицы R(K,N) и поменять их
местами. K<=20, N<=10.
Найти то ладно, а вот поменять сложнее.
я написал вот так :
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdafx.h>
#include <stdlib.h>
 
int main()
{ 
    int r[21][11],mi,ma,mo,min_ri,min_rj,max_ri,max_rj,a,b;
    mo=0;
    a=0;
    b=0;
    min_ri=0;
    min_rj=0;
    max_ri=0;
    max_rj=0;
    for (int i=0;i<21;i++)
        for (int j=0;j<11;j++)
        { r[i][j]=rand()%100;
        printf(" %d", r[i][j]);
    };
    mi=r[0][0];
    ma=r[0][0];
    for (int i=0;i<21;i++)
        for (int j=0;j<11;j++)
        {
            if (mi>r[i][j]) {min_ri=i; min_rj=j; mi=r[i][j];};
            if (ma<r[i][j]) {max_ri=i; max_rj=j; ma=r[i][j];};
                    
        };
a=min_ri;
b=min_rj;
min_ri=max_ri;
min_rj=max_rj;
max_ri=a;
max_rj=b;
printf ("posle peremeny ix mestami\n");
for (int i=0;i<21;i++)
        for (int j=0;j<11;j++)
        {printf(" %d", r[i][j]);
        };
}
но вот только неработает, неменяет.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.12.2010, 19:28 #9
меняйте используя доп. переменную
при поиске запоминайте индексы мак и мин элемента
никто за вас код писать не будет!
Toxic
0 / 0 / 0
Регистрация: 19.10.2009
Сообщений: 14
12.12.2010, 19:37  [ТС] #10
индексы запоминаю я. но есть ошибка но не как непойму в чём.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.12.2010, 20:05 #11
C
1
2
3
4
5
6
7
8
9
10
11
12
int min;   // мин. элемент
int max;   //  макс. элемент
int min_i;  // индекс мин. элемента и т.д.
int min_j;  //
int max_i; //
int max_j;  //
 
// замена
 
 
mt[max_i][max_j]=min;
mt[min_i][min_j]=max;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 20:05
Привет! Вот еще темы с ответами:

Написать функцию, которая возвращает минимальное из двух чисел, которые переданы в функцию в качестве параметров - C++
Написать функцию, которая возвращает минимальное из двух чисел, которые переданы в функцию в качестве параметров.

Написать функцию, которая возвращает максимальное из двух чисел, которые переданы в функцию в качестве параметров - C++
Написать функцию, которая возвращает максимальное из двух чисел, которые переданы в функцию в качестве параметров.

Написать встроенную функцию min () и обычную функцию imin (), которые возвращают меньшее из двух целых значений - C++
Написать встроенную функцию min () и обычную функцию imin (), которые возвращают меньшее из двух целых значений.

Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя - C++
Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.12.2010, 20:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru