Я новичок в программировании, и я пытаюсь создать программу, которая будет либо переставлять строку символов в алфавитном порядке, либо массив цифр в порядке возрастания, используя сортировку пузырьков для проверки моих знаний и понимания.Для этого я использовал функцию scanf (), а также две разные функции для алфавита или строк.В то время как алфавит один работает по назначению, цифры просто не переставляют цифры в порядке возрастания, и я не знаю почему.
Вот полный код:
#include <stdio.h>
#include <stdlib.h>
#define TAILLE 26
#define LENGHT 6
void croissant(char alphabet[]);
void ascend(int numero[]);
int main()
{
int x, r;
int numero[] = { 6, 3, 2, 4, 5, 1 };
char alphabet[] = "azertyuiopqsdfghjklmwxcvbn";
printf("Pour remettre l'alphabet dans l'ordre, tapez 1 : \n\n%s\n\n\n",
alphabet);
printf("Pour remettre cette suite de chiffre dans l'ordre, tapez 2 :
\n\n");
for(x=0; x<LENGHT; x++)
{
printf("%d\t", numero[x]);
}
putchar('\n');
scanf("%d", &r);
if(r == 1)
{
croissant(alphabet);
printf("Voila : %s", alphabet);
}
else if(r == 2)
{
printf("Voila ! : ");
ascend(numero);
for(x=0; x<LENGHT; x++)
{
printf("%d\t", numero[x]);
}
}
else
puts("Je regrette, je n'ai pas compris.");
return 0;
}
void croissant(char alphabet[])
{
int externe, interne, temp;
for(externe=0; externe<TAILLE-1; externe++)
{
for(interne=externe+1; interne<TAILLE; interne++)
{
if(alphabet[externe] > alphabet[interne])
{
temp = alphabet[externe];
alphabet[externe] = alphabet[interne];
alphabet[interne] = temp;
}
}
}
}
void ascend(int numero[])
{
int temp, externe, interne;
for(externe=0; externe<LENGHT-1; externe++);
{
for(interne=externe+1; interne<LENGHT; interne++)
{
if(numero[externe] > numero[interne])
{
temp = numero[externe];
numero[externe] = numero[interne];
numero[interne] = temp;
}
}
}
}
Я извиняюсь за своиШаткий английский и спасибо за ваше время.