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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2014, 23:06   #1
Sting95
Пользователь
 
Регистрация: 13.08.2013
Сообщений: 23
По умолчанию Работа с массивами. Си

Задание: Создать массив, вывести его на экран в общепринятом виде и упорядочить строки массива по возрастанию. Вывести результирующий массив на экран.
1) В программе предусмотреть заполнение массива тремя способами: задать массив как константу, заполнить массив случайными числами, ввести массив с клавиатуры.
Выбор типа заполнения выполняется с помощью простого меню:
Как заполнять массив?
1. Как константу.
2. Случайные числа.
3. Вручную.
Введите номер выбора. Меню организовано с помощью оператора SWITCH_САSЕ.

Вот есть некоторые наработки, но не корректно работает, и нету сортировки. Надеюсь на помощь.

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

main()
{
int L,i,j;
int X[3][4]={{1,3,5,7},{2,4,6,8},{2,5,7,3}};
int A[3][4],B[3][4];


printf("Kak zapolnatb massiv?");
printf("\n1.Kak konstanta");
printf("\n2.Sly4ainimi chislami");
printf("\n3.Vry4nuyu\n");
scanf("%d",&L);
clrscr();

switch(L){
case1:
printf("Do peretvorennya\n");
for(i=0;i<3;i++)
{
   for(j=0;j<4;j++)
      printf("%2d",X[i][j]);
      printf("\n");
     }
       getch();
   break;

case2:
printf("Do peretvorennya\n");
for(i=0;i<3;i++)
{
   for(j=0;j<4;j++)
      A[i][j]=rand()%100;
      printf("%2d",A[i][j]);
      printf("\n");
       }
       getch();
   break;

case3:
printf("Vvedite elementu matrici\n");
 for(i=0;i<3;i++)
{
   for(j=0;j<4;j++)
    scanf("%d",&B[i][j]);
    }
       getch();

printf("Do peretvorennya\n");
for(i=0;i<3;i++)
{
   for(j=0;j<4;j++)
      printf("%2d",B[i][j]);
      printf("\n");
       }
       getch();
      break;
}}
Sting95 вне форума Ответить с цитированием
Старый 27.04.2014, 23:33   #2
reflexx
Пользователь
 
Регистрация: 27.04.2014
Сообщений: 21
По умолчанию

Массив двумерный?
reflexx вне форума Ответить с цитированием
Старый 28.04.2014, 00:43   #3
Sting95
Пользователь
 
Регистрация: 13.08.2013
Сообщений: 23
По умолчанию

reflexx Вот такой.

1 3 5 7
2 4 6 8
2 5 7 3
Sting95 вне форума Ответить с цитированием
Старый 28.04.2014, 02:02   #4
reflexx
Пользователь
 
Регистрация: 27.04.2014
Сообщений: 21
По умолчанию

Код:
#include <stdio.h>

#define rows 3
#define cols 4

int main(int argc, char *argv[])
{
	int action;
	printf("Set number of action:\n");
	printf("1. Like constant\n");
	printf("2. Random array\n");
	printf("3. Write array\n");
	scanf("%d", &action);

	switch (action)
	{
		case 1:
		{
			int matrix[rows][cols] = {{1, 3, 5, 7}, {2, 4, 6, 8}, {2, 5, 7, 3}};

			for (int i = 0; i < rows; i++)
				for (int j = 0; j < cols - 2; j++)
					for (int k = cols - 2; k >= j; k--)
						if (matrix[i][k] > matrix[i][k+1])
						{
							int temp = matrix[i][k];
							matrix[i][k] = matrix[i][k+1];
							matrix[i][k+1] = temp;
						}
	
			for (int i = 0; i < rows; i++)
			{
				for (int j = 0; j < cols; j++)
					printf("%d\t", matrix[i][j]);
				printf("\n");
			}
			break;
		}
		case 2:
		{
			int matrix[rows][cols];

			for (int i = 0; i < rows; i++)
				for (int j = 0; j < cols; j++)
					matrix[i][j] = rand() % 20 - 10;

			for (int i = 0; i < rows; i++)
				for (int j = 0; j < cols - 2; j++)
					for (int k = cols - 2; k >= j; k--)
						if (matrix[i][k] > matrix[i][k+1])
						{
							int temp = matrix[i][k];
							matrix[i][k] = matrix[i][k+1];
							matrix[i][k+1] = temp;
						}

			for (int i = 0; i < rows; i++)
			{
				for (int j = 0; j < cols; j++)
					printf("%d\t", matrix[i][j]);
				printf("\n");
			}
			break;
		}
		case 3:
		{
			int matrix[rows][cols];

			for (int i = 0; i < rows; i++)
				for (int j = 0; j < cols; j++)
					scanf("%d", &matrix[i][j]);

			for (int i = 0; i < rows; i++)
				for (int j = 0; j < cols - 2; j++)
					for (int k = cols - 2; k >= j; k--)
						if (matrix[i][k] > matrix[i][k+1])
						{
							int temp = matrix[i][k];
							matrix[i][k] = matrix[i][k+1];
							matrix[i][k+1] = temp;
						}

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

    return 0;
}
reflexx вне форума Ответить с цитированием
Старый 28.04.2014, 02:13   #5
Sting95
Пользователь
 
Регистрация: 13.08.2013
Сообщений: 23
По умолчанию

reflexx

А вы в какой среде разработки делали?
А то в C++Builder6 не хочет работать.
Sting95 вне форума Ответить с цитированием
Старый 28.04.2014, 02:16   #6
reflexx
Пользователь
 
Регистрация: 27.04.2014
Сообщений: 21
По умолчанию

Использовал Pelles C.
reflexx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами parshin Microsoft Office Excel 19 12.03.2014 14:36
Работа с массивами (С/С++) taranykhin Помощь студентам 4 18.11.2013 20:56
Работа с массивами bauka1606 Помощь студентам 3 02.11.2013 07:46
работа с массивами Devil669 Общие вопросы C/C++ 2 03.05.2013 19:54
Работа с массивами(Си++) GNick Помощь студентам 2 12.01.2010 00:27