2017-10-18 4 views
-2

La tâche consiste à trier et à imprimer les entiers entrés à partir du clavier dans l'ordre croissant, sans utiliser de tableaux dans C. La fin des entrées est marquée par un '-1', qui ne doit pas être considéré comme une entrée. J'ai essayé de résoudre ce problème mais je n'ai pas réussi, quelqu'un peut-il m'aider à résoudre ce problème?Trier et imprimer des entiers alimentés à partir du clavier dans l'ordre croissant sans utiliser de tableaux dans C

Voici ma tentative

#include<stdio.h> 

void smaller(int first,int second) 
{ 
    int temp=0; 
    if(second<first) { 
     temp=first; 
     first=second; 
     second=temp; 
     printf("%d %d",first,second); 
     } 
} 

int main() 
{ 
     int first=0,second=0; 

     printf("Kindly enter numbers to be arranged in ascending order followed by a -1\n\n"); 
     scanf("%d",&first); 

     while(second != -1) { 
      scanf("%d",&second); 
      smaller(first, second); 
     } 
     return 0; 
} 
+2

Je suppose que la récursivité est nécessaire ou enregistrer les données dans un fichier, sauf si l'entrée est dans l'ordre requis. – chux

+1

Qu'en est-il d'une liste chaînée? –

+0

@JerryJeremiah C'est une approche qui serait très bien accueillie sur https://codegolf.stackexchange.com/ :) – klutt

Répondre

-3

En cela, nous pouvons entrer dans chaque numéro un par un à partir du clavier puis effectuer le tri par insertion à l'étape ech, enfin, nous obtenons un ensemble de nombres triés.

+0

Ce programme prendrait beaucoup de temps (en ce qui concerne la complexité, etc.). Et encore, vous auriez probablement besoin d'utiliser un tableau. –