Je ne peux pas comprendre ce qui ne va pas avec elle.S'il vous plaît aidez-moi à déboguer mon Insertion Sort Program
Si entrée: 4,56,5,2 alors la sortie affichée est: 2,4,0,1304.
Si l'entrée: 27,54,43,26,2 puis sortie est montré: 2,26,0,1304,0
Si l'entrée: 34,87,54,4,34 alors montré la sortie est : 4,34,0,1304,0
Fondamentalement, seuls les deux premiers numéros triés sont affichés en sortie et à d'autres endroits 1304 ou 0 est affiché pour tout jeu d'entrée.
#include <conio.h>
#include <stdio.h>
void main()
{
int a[10],b[10];
int i,size,j,k;
clrscr();
printf("please tell how many nos you want to enter");
scanf("%d",&size);
printf("Enter the nos");
for (i=0;i<size;i++) scanf("%d",&a[i]);
b[0]=a[0];
//insertionSort algo ---->
for (j=1;j<size;j++)
{
for (k=j-1;k>=0;k--)
//handling comparision with b[0]
if (k==0&&(a[j]<b[0])) {
b[1]=b[0];
b[0]=a[j];
}
//handling comparison with b[1:size-1]
if (k>0&&(a[j]<b[k])) { b[k+1]=b[k]; }
if (k>=0&&(a[j]>=b[k])) { b[k+1]=b[k]; break; }
}
for (i=0;i<size;i++) printf("%d\n",b[i]);
getch();
}
Quel est le résultat attendu? –
Le résultat attendu est les nombres qui ont été entrés pour être affichés dans un ordre croissant trié – Pradeep
La logique est extrêmement défectueuse. Sortez un morceau de papier, dessinez comment vous pensez que ce programme devrait fonctionner. Il semble que vous ayez commencé à coder sans d'abord comprendre le programme. – Coeffect