Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Функции


Автор: Ursa 3.5.2012, 18:03
Необходимо разработать программу согласно варианту задания. Данные в программу передаются через параметры командной строки. Максимальная длина строковых значений: 20 символов.
Задание:В параметрах командной строки передаются строковые значения. Вывести все значения на экран, отсортировав в порядке убывания длины.
Зарание спасибо.

Автор: bsa 3.5.2012, 23:08
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: t_gran 5.5.2012, 09:11
Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//----------------------------------------------//
void Print(char** arr, int length)
{
   int i;
   for (i=0; i<length; ++i)
   {
      printf("%s\n", arr[i]);
   }
}
//----------------------------------------------//
void Swap(char** a, char** b)
{
   char* buff = *a;
   *a = *b;
   *b = buff;
}
//----------------------------------------------//
void Sort(char** arr, int length)
{
   int i, j;
   
   for (i=0; i<length-1; ++i)
   {
      int max = i;
      for (j=i+1; j<length; ++j)
      {
         // Вообще-то это не хорошо, что постоянно определяется длина :-(
         if (strlen(arr[max]) < strlen(arr[j]))
         {
            max = j;
         }
      }
      if (max != i)
      {
         Swap(&arr[i], &arr[max]);
      }
   }
}
//----------------------------------------------//

int main(int argc, char** argv)
{
   if (argc < 2)
   {
      printf("Usage: program.exe <STRINGS>");
      return 0;
   }
   
   int length = argc - 1;

   char** arr = (char**) malloc(sizeof(char*) * length);
   
   int i;
   for (i=0; i<length; ++i)
   {
      arr[i] = (char*) malloc(sizeof(char) * (strlen(argv[i+1])+1));
      strcpy(arr[i], argv[i+1]);
   }
   
   Sort(arr, length);
   Print(arr, length);
   
   for (i=0; i<length; ++i)
   {
      free(arr[i]);
   }
   free(arr);
   
   return 0;
}

http://s2.ipicture.ru/

Автор: susanin 11.5.2012, 11:27
Цитата(Ursa @  3.5.2012,  18:03 Найти цитируемый пост)
Максимальная длина строковых значений: 20 символов.

Ursa, я так понимаю что это нужно будет тебе самому доделать:)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)