Ordinamento in ordine alfabetico

di Anonimizzato26642 il
3 risposte
Salve, devo scrivere un programma che riordina le nazioni date in input con relativa capitale in ordine alfabetico. questo è quello che ho scritto:
#include <stdio.h>
#include <string.h>

struct Info
{
	char nazione [10][500];
	char capitale [10][500];
};
Info tbl[10];

int main ()
{
	Info tmp;
	
	for (int i=0; i<10; i++)
	{
		printf("Inserire il nome di una nazione e della relativa capitale: ");
		scanf ("%s %s", &tbl[i].nazione, &tbl[i].capitale);
	}
	for (int i=0; i<9;i++)
	{
		for(int j=0; j<9;j++)
		{
			if(strcmp(tbl[j].nazione, tbl[j+1].nazione)>0)
			{
				tmp=tbl[j];
				tbl[j]=tbl[j+1];
				tbl[j+1]=tmp;
			}
		}
	}
	for(int i=0; i<10; i++)
		printf("%s %s\n", tbl[i].nazione, tbl[i].capitale);
}
	
mi da un errore dentro l'if con lo strcmp, come posso risolvere?

3 Risposte

  • Per risolverlo bisogna sapere quale errore è...
  • Dice: "[Error] cannot convert 'char (*)[500]' to 'const char*' for argument '1' to 'int strcmp(const char*, const char*)' "
  • Il problema è negli elementi della struct

    Perché

    char nazione [10][500];
    char capitale [10][500];

    ???
Devi accedere o registrarti per scrivere nel forum
3 risposte