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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2016, 19:55   #1
moksim
 
Регистрация: 27.11.2016
Сообщений: 6
По умолчанию [Си]: Вставка столбца в двумерный массив. Не работает код.

В двумерный массив вставить два столбца из нулей: первый перед столбцом с номером k, второй -после него. Под вставкой заданного столбца после столбца с номером s следует понимать смещение всех столбцов после s-го на один вправо и присваивание заданных значений элементам
s+1-го столбца
чет не работает
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define n 10


int main()
{
    srand(time(0));
    int a[n][n],t,i,j;
    printf("vvedite nomer stolbca k : ");
    scanf("%d",&t);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            a[i][j]=rand()%100;
            printf("%d\t",a[i][j]);
            if(j==t)
            {
                a[i][j+1]=a[i][t];
                a[i][j-1]=a[i][t];
            }
        }
        a[i][t+1]=0;
        a[i][t-1]=0;
    }
    return 0;
}

Последний раз редактировалось Вадим Мошев; 14.12.2016 в 21:40.
moksim вне форума Ответить с цитированием
Старый 14.12.2016, 20:09   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Что-то твой код не работает (вообще). Вот поиграйся:

Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define n 10

int main()
{
	srand(time(0));
	int a[n][n], t, i, j;
	printf("vvedite nomer stolbca k : ");
	scanf("%d", &t);
	printf("\n");
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			a[i][j] = rand() % 100;
			printf("   %d\t", a[i][j]);
		}
		printf("\n");
	}
	printf("\n");
	
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (j == t)
			{
				a[i][j + 1] = a[i][t];
				a[i][j - 1] = a[i][t];
			}
		}
		a[i][t + 1] = 0;
		a[i][t - 1] = 0;
	}

	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{			
			printf("   %d\t", a[i][j]);
		}
		printf("\n");
	}

	scanf("%d", &t);
	return 0;
}

p.s.: у тебя вроде просто заменяет (а не смещает) столбцы.
ura_111 вне форума Ответить с цитированием
Старый 14.12.2016, 20:15   #3
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

4.jpg

Что надо поправить в программе, чтобы было ОК?

Последний раз редактировалось ura_111; 14.12.2016 в 20:37.
ura_111 вне форума Ответить с цитированием
Ответ


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