【问题标题】:sorting a 2d string array by alphabetizing in c通过在 c 中按字母顺序排序二维字符串数组
【发布时间】:2015-06-27 10:23:07
【问题描述】:

我的循环只是安排第一个元素,我尝试放置一个外循环但它不起作用。我需要在我的程序中使用另一个循环还是初始化另一个 char array[] 来传输循环?

#include <stdio.h>
int main(void)
{
    char applicants[10][15],temp[15];
    char swap[10][15];
    int apps,i,j,c=0;

    printf("how many applicants?\n");
    scanf("%d",&apps);

    printf("enter the names of the applicants on seperate lines\n");
    printf("in order in which they applied for > ");
    for (i=0;i<apps;i++){
       scanf("%s",applicants[i]);
    }

    printf("\napplication order\n");
    printf("-----------------\n");
    for (i=0;i<apps;i++){
       printf("\t%s\n",applicants[i]);
    }

    for(i=0;i<apps-1;i++){
        c=strcmp(applicants[i],applicants[i+1]);
        printf("\n%d\n",c);
        if(c>0)
            strcpy(temp,applicants[i]);
            strcpy(applicants[i],applicants[i+1]);
            strcpy(applicants[i+1],temp);
    }

    printf("\n\n alphebatize order\n");
    printf("-------------------\n");
    for (i=0;i<apps;i++){
       printf("\t%s\n",applicants[i]);
    }


if(strcmp(applicants[0],applicants[1])>0){
        printf("\n\n%s is greater than %s",applicants[0],applicants[1]);
    }


}

【问题讨论】:

  • 不要把代码写的那么紧,没有空格的代码人类很难看懂,你可以用空格让它更易读,反正编译器会忽略。

标签: c sorting multidimensional-array c-strings


【解决方案1】:

您的if 语句在此处缺少大括号

if(c>0)
    strcpy(temp,applicants[i]);
    strcpy(applicants[i],applicants[i+1]);
    strcpy(applicants[i+1],temp);

意思是一样的

if (c > 0)
 {
    strcpy(temp, applicants[i]);
 }
strcpy(applicants[i], applicants[i + 1]);
strcpy(applicants[i + 1], temp);

所以您将用applicants[i + 1] 覆盖applicants[i],然后将存储在temp 中的上一个 值写入applicants[i + 1],不一定是applicants[i]

你需要加括号

if (c > 0)
 {
    strcpy(temp, applicants[i]);
    strcpy(applicants[i], applicants[i + 1]);
    strcpy(applicants[i + 1], temp);
 }

【讨论】:

  • 是的,我在玩代码,我必须删除它们,修复它,好的,谢谢我刚刚修复它。在其中添加了另一个循环,程序运行顺利。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
相关资源
最近更新 更多