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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2017, 22:49   #1
tarstar
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 18
По умолчанию Поменять строки матрицы местами

Помогите, пожалуйста, разобраться в чем беда. Меняет только вторую строку на нулевую, а нулевую на вторую нет.



Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#define firstSt 0
#define secondSt 2


int changeStrings ( int *matrix, int hight, int width)
{
	int freeVal = 0, sis = 0;
	srand(time(NULL));
    for (int i = 0 ; i < hight; i++)
    {
    	printf("\n");
    	
    	for (int j = 0 ; j < width; j++)
    	{
    		*(matrix + i*width + j) = rand()%10;
    		if ( i == secondSt )
    		{	
                freeVal = *(matrix + firstSt*width + j) ;
    		    *(matrix + firstSt*width + j) = *(matrix + i*width + j);
    			*(matrix + i*width + j) = freeVal;
                
    		}
    	}
    		
    }	
    for (int i = 0 ; i < hight; i++)
    {
        printf("\n");
        
        for (int j = 0 ; j < width; j++)
            printf("[%i][%i]:%i   ", i, j,  *(matrix + i*width + j));
            
    }   

	return 0;
}

int main (void)
{
    int *matrix, hight, width;
    printf("Enter the size of matrix:\n");
    printf("hight = ");
    scanf("%dhight\n",&hight);
    printf("width = ");
    scanf("%dwidth\n",&width);
    matrix = (int*) malloc (hight*width*sizeof(int));
    srand(time(NULL));
    for ( int i = 0; i < hight; i++)
    {
    	printf("\n\n");
    	for ( int j = 0; j < width; j++)
    	{
    		*(matrix + i*width + j) = rand()%10;
    		printf("[%i][%i]:%i   ", i, j,  *(matrix + i*width + j));
    		
    	}
    }	
    
    printf("\n\n");
  
    changeStrings (matrix, hight, width);

	return 0;
}

Последний раз редактировалось Аватар; 04.12.2017 в 23:10. Причина: Устранена ошибка
tarstar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять местами столбцы матрицы - C++ АлиМяу Помощь студентам 0 14.06.2017 23:19
(с++)Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами первым и последним элементам строки соответственно Ивангелион Помощь студентам 4 23.12.2016 18:25
Язык C. Задана целочисленная матрица размером NxM. Поменять местами максимальный и минимальный элемент каждой строки матрицы. valodu Помощь студентам 2 05.04.2016 02:18
Поменять квадраты матрицы местами. Виталик124 Паскаль, Turbo Pascal, PascalABC.NET 13 28.02.2014 00:01
В каждой строке матрицы А(n*n) найти наибольший и наименьший элементы матрицы и поменять их местами saha1994 Паскаль, Turbo Pascal, PascalABC.NET 2 15.05.2012 20:38