Отсортировать страны по спаданию количества населения - C (СИ)

Формулировка задачи:

Здание: Есть страна о которой сказано 1)название 2)население 3) площадь. Нужно отсортировать по спаданию количества населения.
           #include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
 
struct kraina
{
    char kraina[100];
    int naselennia;
    int ploshcha [200];
 
};
 
int main(void)
{
  struct kraina  Kr[100],  char c, char s,int i, int n, int tmp,  nKr = 0;
  do
  {
      printf("Vvedit nazvy krainu ");
      gets(Kr[nKr].kraina);
      printf("Vvedit naselennia ");
      scanf("%d", & Kr[nKr].naselennia);
      getchar();
      printf("Vvedit ploshchy ");
      scanf("%d", & Kr[nKr].ploshcha);
 
      nKr++;
      printf("continue?(y/n) or sort?(s/n)");
      scanf("%c", &c);
      getchar();
      scanf("%s", &s) ;
      getchar();
 
  } while(c == 'y' || c == 'Y');
     if(c=='s' || c=='Y')
     {   for(i=0; i<nKr; i++)
        if (Kr[i].n<Kr[i+i].n)
        tmp = Kr[i];
        Kr[i] = nKr[i+1] ;
         Kr[i+1] = tmp; 
printf("%/n", Kr[i].nazva);
         }
 
        getch();
      return 0;
 
}

Код к задаче: «Отсортировать страны по спаданию количества населения - C (СИ)»

textual
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
 
struct kraina
{
    char kraina[100];
    int naselennia;
    int ploshcha;
 
};
 
int main(void)
{
  struct kraina  Kr[100];
  char c='n',s;
  int i,n,j,tmp,nKr = 0;
  do
  {
      printf("Vvedit nazvy krainu ");
      scanf("%s",&Kr[nKr].kraina);
      //gets(Kr[nKr].kraina);
      printf("Vvedit naselennia ");
      scanf("%d", & Kr[nKr].naselennia);
      //getchar();
      printf("Vvedit ploshchy ");
      scanf("%d", & Kr[nKr].ploshcha);
      nKr++;
      printf("continue?(y/n) or sort?(s/n)");
      scanf("%s", &c);
     // getchar();
     // scanf("%s", &s) ;
     // getchar();
 
  } while(c == 'y' || c == 'Y');
     if(c=='s' || c=='n')
     {   
        
     for(j=0;j<nKr;j++)
     {
        for(i=0; i<nKr; i++)
        {
            if (Kr[i].naselennia<Kr[i+1].naselennia)
                {
                    tmp = Kr[i].naselennia;
                    Kr[i].naselennia = Kr[i+1].naselennia ;
                    Kr[i+1].naselennia = tmp; 
                    //printf("%d\n", Kr[i].naselennia);
                }
            
        }
     }
     
        
    }
 for(i=0; i<nKr; i++)
    printf("%d\n", Kr[i].naselennia);
 
 
        getch();
      return 0;
 
}

13   голосов, оценка 4.308 из 5


СОХРАНИТЬ ССЫЛКУ