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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
udwik
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 18
#1

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

25.01.2010, 16:37. Просмотров 1712. Ответов 20
Метки нет (Все метки)

написать функциЮ которая меняеи местами первый и последний ряд матрицы(квадратной) и находит произведение элементов главной диагонали
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2010, 16:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию, которая меняет местами первый и последний ряд матрицы (C++):

Как написать программу, которая меняет местами первую строку и последний столбец квадратной матрицы? - C++
Здравствуйте, мне дали задание сгенерировать квадратную матрицу, на промежутке от а до b, и поменять местами первую строку и последний...

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

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

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

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

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

20
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
25.01.2010, 17:20 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
40
41
42
43
44
#include <stdio.h>
#include <conio.h>
#define H 3
#define W 3
long swapUmn(int *matrix,int h,int w);
void main(){
int matrix[H][W] = {
    {1,2,3}, 
    {4,5,6},
    {7,8,9}
    };
 
printf("transform\n");
long prDiag = swapUmn(&matrix[0][0],H,W);  //трансформируем, и получаем произведени элемнетов диагонали
 
//выводим результат
for(int i=0;i<H;i++){
    for(int j=0;j<W;j++){
printf(" "); printf("%d",matrix[i][j]);
    }
printf("\n");
}
printf("\n");
//выводим произведение элементов диагонали
printf("%d",prDiag);
printf("\n");
getch();
}
long swapUmn(int *matrix,int h,int w){
int i = 0;      //первая строка
int j = h-1;    //последня строка
int s = 0;      //индекс столбца
//Обмен последней строки и первой
for(;s<w;s++){
int tmp = matrix[i*w+s];
matrix[i*w+s] = matrix[j*w+s];
matrix[j*w+s]=tmp;
}
 
//Находим произведение элементов диагонали
int pr = 1;
for(int q = 0,k=0;q<h||k<w;q++,k++)pr*=matrix[q*w+k];
return pr;
}
1
udwik
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 18
25.01.2010, 17:41  [ТС] #3
тут все круто но надо только в С
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
25.01.2010, 17:47 #4
И так вроде на C, а что не компилируется.
0
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
25.01.2010, 18:48 #5
И так вроде на C, а что не компилируется.
Это не C.
C++
1
for(int i=0;i<H;i++){
0
udwik
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 18
25.01.2010, 18:53  [ТС] #6
это С.
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
25.01.2010, 18:54 #7
Вы еще опрос создайте, С это или не С.
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
25.01.2010, 18:55 #8
Это не С, умник
С это
C
1
2
int i;
for (i=0;i<N;i++)
0
udwik
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 18
25.01.2010, 19:46  [ТС] #9
в С тип переменной может объявляться в цикле
0
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
26.01.2010, 10:48 #10
2udwik тебе умные люди говорят что это не C.
Чего ты упираешься ?
в С тип переменной может объявляться в цикле
Внутри тела цикла может.
А вот внутри for ( ; ; ) не может.
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
26.01.2010, 13:02 #11
Специально для умных людей выдержка из стандарта С99 (красным выделено)
0
Миниатюры
Написать функцию, которая меняет местами первый и последний ряд матрицы  
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
27.01.2010, 07:50 #12
выдержка из стандарта С99
По предыдущему стандарту не может.
Microsoft Visual Studio 2005/2008 не поддерживает C99.
И ?
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
27.01.2010, 08:25 #13
Цитата Сообщение от odip Посмотреть сообщение
По предыдущему стандарту не может.
Ключевое слово "предыдущий". Язык развивается, а не стоит на месте.
Цитата Сообщение от odip Посмотреть сообщение
Microsoft Visual Studio 2005/2008 не поддерживает C99.
Поддержка стандарта со стороны производителей IDE не является особенностью языка.
Цитата Сообщение от odip Посмотреть сообщение
И ?
Это СИ.
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.01.2010, 09:45 #14
Цитата Сообщение от udwik Посмотреть сообщение
в С тип переменной может объявляться в цикле
В C++. А в C, насколько мне известно, нельзя.
0
easybudda
Модератор
Эксперт CЭксперт С++
9681 / 5631 / 954
Регистрация: 25.07.2009
Сообщений: 10,808
27.01.2010, 10:52 #15
Цитата Сообщение от Gravity Посмотреть сообщение
Специально для умных людей выдержка из стандарта С99
Вы это разработчикам MS VS отправьте, а то они, видимо, не в курсе

Цитата Сообщение от taras atavin Посмотреть сообщение
А в C, насколько мне известно, нельзя.
В ANSI C 89 действительно нельзя, в ANSI C 99 можно, но этот стандарт не всеми компиляторами поддерживается. Кстати, кроме объявления переменных в заголовке for( ;; ) в С 99 есть много действительно полезных вещей. Откровенно не понимаю, почему мелкомягкие его вот уж больше 10 лет игнорируют...

Добавлено через 16 минут
для разнообразия:
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
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
    
void swapRows(int **a, int **b){
    int *t;
    t = *a;
    *a = *b;
    *b = t;
}
 
long mulDiagonal(int **matr, int size){
    int mul = 1, i;
    for ( i = 0; i < size; ++i )
        mul *= matr[i][i];
    return mul;
}
 
#define ROW 5
 
int main(void){
    int **matr, i, j;
    
    srand(time(NULL));
    
    if ( ( matr = (int**)calloc(ROW, sizeof(int*)) ) == NULL )
        exit(1);
    for ( i = 0; i < ROW; ++i )
        if ( ( matr[i] = (int*)calloc(ROW, sizeof(int)) ) == NULL )
            exit(1);
    
    printf("\nMatrix:\n");
    for ( i = 0; i < ROW; ++i )
        for ( j = 0; j < ROW; ++j )
            printf( ( j < ROW - 1 ) ? "%2d " : "%2d\n", ( matr[i][j] = rand() % 10 ) );
    printf("\nSwap first and last rows:\n");
    swapRows(matr, matr + ROW - 1);
    for ( i = 0; i < ROW; ++i )
        for ( j = 0; j < ROW; ++j )
            printf( ( j < ROW - 1 ) ? "%2d " : "%2d\n", matr[i][j] );
            
    printf("\nMultiply of master diagonal = %ld\n", mulDiagonal(matr, ROW));
            
    for ( i = 0; i < ROW; ++i )
        free(matr[i]);
    free(matr);
    
    exit(0);
}
0
27.01.2010, 10:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2010, 10:52
Привет! Вот еще темы с ответами:

Класс "Строка" содержащий метод, который меняет местами первый и последний символы строки - C++
Написать программу чтобы первый и последний символы строки менялись местами. На экран выводился оригинал и измененная строка. Все это с...

Первый и последний столбец матрицы поменять местами - C++
дана матрица 4 на 4 первый и последний столбец поменять местами

Поменять местами первый и последний ряды матрицы - C++
Разработать матрицу X(6,6) Поменять местами первый и последний ряды. заранее благодарен.

Описать функцию которая меняет местами значения двух параметров - C++
Описать функцию которая меняет местами значения двух параметров. Используя эту функция поменять местами значение переменных a и b введенных...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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