Пузырьковая сортировка не сортирует только первый элемент - PullRequest
0 голосов
/ 30 августа 2018

В следующем коде, который принимает входные данные из аргумента командной строки, пузырьковая сортировка игнорирует первый элемент. И сортирует все остальные элементы. Может кто-нибудь мне помочь? Есть ли ошибка при вводе аргумента строки cmd? Или в логике пузырьковой сортировки? Данные для программы: codeblocks.exe sort 9 8 0 1 2 3 4.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char *argv[])
{
    int k,i=0,j=0,temp=0;
    k=argc-2;
    int arr[k];
    char s[10];
    if(strcmp(argv[1],"sort")==0)
    {
        printf("The values are\n");
        for(i=0;i<k;i++)
        {
            arr[i]=atoi(argv[2+i]);
        }

        for(i=0;i<k;i++)
        {
            printf("%d\n",arr[i]);
        }
        for(i=0;i<k-1;++i)
        {
            for(j=1;j<k;++j)
            {
                if(arr[i]<arr[j])
                {
                    temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }

        printf("The sorted array is\n:");
        for(i=0;i<k;i++) 
        {
            printf("%d\n",arr[i]);
        }
    }
    else if(strcmp(argv[1],"rev")==0)
    {
        printf("the string is: %s\n",argv[2]);
        strrev(argv[2]);
        printf("the string is: %s\n",argv[2]);
    }
    else if(strcmp(argv[1],"pal")==0)
    {
        printf("the given string is %s\n",argv[2]);
        strcpy(s,argv[2]);
        strrev(s);
        if(strcmp(argv[2],s)==0)
        {
            printf("Is a palindrome\n");
        }
        else{
            printf("Not a palindrome");
        }
    }
    return 0;
}
...