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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2017, 00:48   #31
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

а ДРУГОЙ ПРИМЕР:
Код:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main()
{
  int **a;  // указатель на указатель на строку элементов
  int i, j, n, m;
  system("chcp 1251");
  system("cls");
  printf("Введите количество строк: ");
  scanf("%d", &n);
  printf("Введите количество столбцов: ");
  scanf("%d", &m);
  // Выделение памяти под указатели на строки
  a = (int**)malloc(n * sizeof(int*));
  // Ввод элементов массива
  for (i = 0; i<n; i++)  // цикл по строкам
  {
    // Выделение памяти под хранение строк
    a[i] = (int*)malloc(m * sizeof(int));
    for (j = 0; j<m; j++)  // цикл по столбцам
    {
      printf("a[%d][%d] = ", i, j);
      scanf("%d", &a[i][j]);
    }
  }
  // Вывод элементов массива
  for (i = 0; i < n; i++)  // цикл по строкам
  {
    for (j = 0; j < m; j++)  // цикл по столбцам
    {
      printf("%5d ", a[i][j]); // 5 знакомест под элемент массива
    }
    printf("\n");
  }
  // Очистка памяти
  for (i = 0; i < n; i++)  // цикл по строкам
    free(a[i]);   // освобождение памяти под строку
  free(a);
  getchar();   getchar();
  return 0;
}
его я в интернете нашёл.
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 01:17   #32
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

Цитата:
Сообщение от ura_111 Посмотреть сообщение
а ДРУГОЙ ПРИМЕР:
Код:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main()
{
  int **a;  // указатель на указатель на строку элементов
  int i, j, n, m;
  system("chcp 1251");
  system("cls");
  printf("Введите количество строк: ");
  scanf("%d", &n);
  printf("Введите количество столбцов: ");
  scanf("%d", &m);
  // Выделение памяти под указатели на строки
  a = (int**)malloc(n * sizeof(int*));
  // Ввод элементов массива
  for (i = 0; i<n; i++)  // цикл по строкам
  {
    // Выделение памяти под хранение строк
    a[i] = (int*)malloc(m * sizeof(int));
    for (j = 0; j<m; j++)  // цикл по столбцам
    {
      printf("a[%d][%d] = ", i, j);
      scanf("%d", &a[i][j]);
    }
  }
  // Вывод элементов массива
  for (i = 0; i < n; i++)  // цикл по строкам
  {
    for (j = 0; j < m; j++)  // цикл по столбцам
    {
      printf("%5d ", a[i][j]); // 5 знакомест под элемент массива
    }
    printf("\n");
  }
  // Очистка памяти
  for (i = 0; i < n; i++)  // цикл по строкам
    free(a[i]);   // освобождение памяти под строку
  free(a);
  getchar();   getchar();
  return 0;
}
его я в интернете нашёл.

да, но тут вводишь числа
Антон1990 вне форума Ответить с цитированием
Старый 21.03.2017, 01:38   #33
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А так:

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

int main()
{

	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	
	int kol, i, size;
	printf("ВВедите количество человек: ");
	scanf("%d", &kol);
	printf("\n");

	char **a;  // указатель на указатель на строку элементов
	a = (char**)malloc(kol * sizeof(char*));

	// Ввод элементов массива
	printf("Введите фамилии студентов и их результаты в беге на 100 м:\n");
	for (i = 0; i < kol; i++)  // цикл по строкам
	{
		fflush(stdin);
		char b[256];
		gets(b);
		size = 0;
		while (b[size] != '\0')
			size++;	
		// Выделение памяти под хранение строк
		a[i] = (char*)malloc(size * sizeof(char));
		size = 0;
		while (b[size] != '\0')
		{
			a[i][size] = b[size];
			size++;
		}
		a[i][size] = b[size];
	}


	printf("\nОтсортированная команда:\n");
	for (i = 0; i < 4; i++)
	{
		printf(" %d-е место: ", i + 1);
		puts(a[i]);
	}
	
	scanf("%d", &i); // чтобы консоль быстро не закрывалась
	return 0;
}
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 01:40   #34
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А статика? (она, вроде, проще)

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

int main()
{
	setlocale(LC_ALL, "rus");

	int kol, i;
	printf("Введите количество человек: ");
	scanf("%d", &kol);
	printf("\n");

	char a[15][50];
	printf("Введите фамилии студентов и их результаты в беге на 100 м:\n");
	for (i = 0; i < kol; i++)
	{
		fflush(stdin);
		gets(a[i]);		
	}


	printf("\nОтсортированная команда:\n");
	for (i = 0; i < 4; i++)
	{
		printf(" %d-е место: ", i + 1);
		puts(a[i]);
	}

	scanf("%d", &i); // чтобы консоль быстро не закрывалась
	return 0;
}
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 01:41   #35
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

нет
Антон1990 вне форума Ответить с цитированием
Старый 21.03.2017, 01:45   #36
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я не понимаю почему.

Попробуй в рабочем примере заменить у себя "int" на "char" (т.е. сделать из динамического массива "int", "char").
Будет ли работать?
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 01:49   #37
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

Цитата:
Сообщение от ura_111 Посмотреть сообщение
Я не понимаю почему.

Попробуй в рабочем примере заменить у себя "int" на "char" (т.е. сделать из динамического массива "int", "char").
Будет ли работать?
тогда лучше, наверное, статически писать
Антон1990 вне форума Ответить с цитированием
Старый 21.03.2017, 01:56   #38
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

в общем она запустилась
Антон1990 вне форума Ответить с цитированием
Старый 21.03.2017, 02:00   #39
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ты писал, что не работает.

Попробуй через "calloc":

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

int main()
{

	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	
	int kol, i, size;
	printf("ВВедите количество человек: ");
	scanf("%d", &kol);
	printf("\n");

	char **a;  // указатель на указатель на строку элементов
	a = (char**)calloc(kol, sizeof(char));

	// Ввод элементов массива
	printf("Введите фамилии студентов и их результаты в беге на 100 м:\n");
	for (i = 0; i < kol; i++)  // цикл по строкам
	{
		fflush(stdin);
		char b[256];
		gets(b);
		size = 0;
		while (b[size] != '\0')
			size++;	
		// Выделение памяти под хранение строк
		a[i] = (char *)calloc(size, sizeof(char));
		size = 0;
		while (b[size] != '\0')
		{
			a[i][size] = b[size];
			size++;
		}
		a[i][size] = b[size];
	}


	printf("\nОтсортированная команда:\n");
	for (i = 0; i < 4; i++)
	{
		printf(" %d-е место: ", i + 1);
		puts(a[i]);
	}
	
	scanf("%d", &i); // чтобы консоль быстро не закрывалась
	return 0;
}
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 02:03   #40
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

но теперь совсем не понятно как вывести лучших бегунов
Антон1990 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите дописать программу - допишите в программу формулу m=sqrt(re^2+lm^2) ( Delphi ) nicroma Помощь студентам 0 24.12.2013 19:59
Помогите дописать программу cL1zMa Паскаль, Turbo Pascal, PascalABC.NET 2 06.06.2008 14:40
Помогите дописать программу. ShnapS Паскаль, Turbo Pascal, PascalABC.NET 5 17.05.2008 19:50
Помогите дописать программу ALIZE Помощь студентам 2 09.12.2007 18:45