В следующем коде, который принимает входные данные из аргумента командной строки, пузырьковая сортировка игнорирует первый элемент. И сортирует все остальные элементы. Может кто-нибудь мне помочь? Есть ли ошибка при вводе аргумента строки 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;
}