在以下从命令行参数获取输入的代码中,冒泡排序将忽略第一个元素。并对所有其他元素进行排序。谁能帮我吗? cmd行参数输入是否有任何错误?还是按照泡沫排序的逻辑?程序的给定输入为:codeblocks.exe排序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;
}