好的,我正在尝试在 C 中询问和排序名称。我完成了代码并且编译没有错误,但我遇到了问题。当我输入大写和小写的混合字符时,我首先对大写进行排序,而不是按顺序排序。我应该如何处理我的代码?请任何人帮助我。
代码:
#include <stdio.h>
#include <string.h>
int main()
{
char name[30][25],temp[25];
int i,j,n;
printf("Enter how many students : ");
scanf("%d",&n);
for(i=0;i<n;i++);
{
printf("Enter the name of the student : ");
scanf("%s",name[i]);
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(name[i],name[j])>0)
{
strcpy(temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],temp);
}
}
}
printf("The sorted names are : \n");
for(i=0;i<n;i++)
{
printf("%s\n",name[i]);
}
getch();
return(0);
}
最佳答案
冒泡排序的循环是错误的 - 更改:
for(i=0;i<n;i++)
{
for(j=i+j;j<n;j++)
{
到:
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
或者只使用 qsort来自标准 C 库,而不是试图重新发明轮子。
关于c - C 中的字符串操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25834597/