小编lle*_*eao的帖子

按字母顺序对字符串列表进行排序 (C)

好的,这是我的问题。老师必须随机选择一名学生(从她所拥有的学生中)以获得最终分数的特殊奖励,为此,她将 N 张编号从 1 到 N 的纸放入袋中并随机选择一个数字 K ; 获奖学生是学生名单中的第 K 个学生。问题是老师不知道哪个数字对应哪个学生,因为她丢失了包含这些信息的论文。她知道的是:所有学生的名字,以及他们的编号,从 1 到 N,按照字母顺序分配。

因此,我需要获取作为输入给出的一组姓名,按字母顺序对它们进行排序,然后提供获得特殊奖金的学生的姓名,但我在这样做时遇到了麻烦。我编写的程序对除第一个之外的所有名称进行排序。

此外,当我使用 Code::Blocks 运行项目时,会出现以下警告:

  • (第 16 行)ISO C90 禁止数组可变长度 's' [-Wvla]
  • (第 13 行)ISO C90 禁止混合声明和代码 [-Wpedantic]

请告诉我我在这里做错了什么,以及是否有更好的方法来对名称进行排序而没有指定数量的名称。

注意:当 N 和 K 等于 0 时,程序应该停止读取输入。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int n, k, i, j=0, aux, numMenorNome;
    char str[]="zzzzzzzzzzzzzzzzzzzz", str2[]="zwyxzzzzzzzzzzzzzzzz";

    do
    {
       scanf("%d%d", &n, &k);
       struct student
       {
           char nome[21]; /*name*/
           char nomes_ordenados[21]; /*array to put the names already sorted*/
       } …
Run Code Online (Sandbox Code Playgroud)

c sorting string alphabetical alphabetical-sort

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

alphabetical ×1

alphabetical-sort ×1

c ×1

sorting ×1

string ×1