尝试列出数组内容时无法解释的格式

时间:2018-01-10 00:15:26

标签: c arrays

当我尝试在我的新项目中列出我的数组内容时遇到了问题。所以问题是,当我列出数组的内容时,它会写入随机数而不是正确的内容。计数器工作正常,一切正常,只有这个功能无法正确输出:/

列出功能:

typedef struct {
  int cikkszam;
  char nev[40];
  int ar;
} data;

int lista(int listadb, data adat[]) {
  int j = 0;
  int i = 0;
  system("cls");

  for(i = 0; i < listadb; i++) {
    for(j = i + 1; j < listadb; j++) {
      if (adat[i].cikkszam > adat[j].cikkszam) {
        data temp = adat[i];
        adat[i] = adat[j];
        adat[j] = temp;
      }
    }
  }

  for (i = 0; i < listadb; i++) {
    printf ("%-15d \t %-15s \t %-15d\n", adat[i].cikkszam, adat[i].nev, adat[i].ar);
  }

  system("pause");
}

输出是这样的: enter image description here

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的代码:

#include <stdio.h>

typedef struct {
  int cikkszam;
  char nev[40];
  int ar;
} data;

int lista(int listadb, data adat[]) {
  int j = 0;
  int i = 0;
  //system("cls");

  for(i = 0; i < listadb; i++) {
    for(j = i + 1; j < listadb; j++) {
      if (adat[i].cikkszam > adat[j].cikkszam) {
        data temp = adat[i];
        adat[i] = adat[j];
        adat[j] = temp;
      }
    }
  }

  for (i = 0; i < listadb; i++) {
    printf ("%-15d \t %-15s \t %-15d\n", adat[i].cikkszam, adat[i].nev, adat[i].ar);
  }

  //system("pause");
  return 0;
}


int main() {
    data d[] = {
            {1, "abc", 3},
            {4, "def", 5,},
            {567, "fdsaf", -35,},
            {-1231, "aaaaa", 32135,},
            {-333, "bbbb", 654,},
    };
    lista(sizeof(d)/sizeof(d[0]), d);
    return 0;
}

给我以下输出:

-1231                aaaaa               32135          
-333                 bbbb                654            
1                    abc                 3              
4                    def                 5              
567                  fdsaf               -35       

您提供的代码工作正常。我的猜测可能只是错误在您提供的源代码之外的某处。