1. 程式人生 > >對結構體使用快排的一個例題

對結構體使用快排的一個例題


題意:是把顏色由多到少進行排序,從大到小的輸出。
案例:

Sample Input
3
3
red 1
green 2
yellow 3
1
blue 83
2
red 2
white 1

Sample Output
yellow green red
blue
red white
 

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct node{
    char ch[110];
    int num;}s[110];
bool cmp(node a,node b)
{
    return a.num>b.num;
}
 int main()
 {
      int t;
   scanf("%d",&t);
    while (t--)
  {
      int n;
     scanf("%d",&n);
      for (int i=0;i<n;i++)
      {
        scanf("%s%d",s[i].ch,&s[i].num);
      }
     sort(s,s+n,cmp);
     for (int i=0;i<n;i++)
     {
       printf("%s%c",s[i].ch,i!=n-1?' ':'\n');
     }
   }
  return 0;
}

這裡利用結構體通過對顏色的數量排序,在輸出最多個數對應的顏色

另外在這裡學到了一種控制空格與輸出的方式。

相關推薦

結構使用一個例題

題意:是把顏色由多到少進行排序,從大到小的輸出。 案例: Sample Input 3 3 red 1 green 2 yellow 3 1 blue 83 2 red 2 white 1 Sample Output yellow green red blue red w

水果,一道結構排序的水題

呵呵 print mes problem net 空行 沒有 scanf http 題目鏈接:https://vjudge.net/contest/161356#problem/E 夏天來了~~好開心啊,呵呵,好多好多水果~~ Joe經營著一個不大的水果店.他認為生存之道就

sort函式結構的排序

sort對結構體的排序,需要自定義排序規則,例:需要根據結構體內的某個變數對結構體陣列進行排序 struct fj { int a,b; double c; }f[1005]; bool cmp(fj a,fj b)//fj就是結構體名 { return a.c>

使用offsetof結構指標偏移操作

題目來自於COMP20003 Tutorial 2: Program m ing Challenge 2.2 The technology stack at Hidebound Inc. uses a subset of C w hich doesn't have the '.' or '->'ope

使用offsetof結構指針偏移操作

cast note argc b- .com main 替換 creation tof 題目來自於COMP20003 Tutorial 2: Program m ing Challenge 2.2 The technology stack at Hidebound Inc.

C++:結構中字元陣列賦值時,出現表示式必須是可修改的左值的問題

問題描述:         在C++中為結構體中的字元陣列賦值時,出現”表示式必須是可修改的左值“的錯誤提醒,編譯報錯“不可指定資料型別”。           &n

C++ STL之deque結構的增加,刪除,排序的操作

****************deque的用法******************************** c.assign(beg,end)            將[beg; end)區間中的資料賦值給c。 c.assign(n,elem)         

C語言用結構給另一個同類型結構賦值: 用等號即可

看到很多C程式碼的結構體賦值都是用memcpy函式來拷貝,其實根本不需要,用等號直接賦值即可。結構體描述的是的一塊連續記憶體的記憶體佈局,同類型的一個結構體變數給另一個結構體變數賦值,使用等號編譯不會有任何問題,其效果顯然也和人直覺認為的一樣,拷貝對應記憶體。

go語言----結構進行排序

package main import "fmt" type myStruct struct { Sid int //使用者sid NN string Score int64

sort結構進行排序

std::sort()函式的功能很強大,且可以對類,結構體等元素進行排序。首先來看看std中的快速排序演算法sort的使用方法:  template <class RandomAccessIterator, class Compare> void sort (

sort結構排序

用sort對結構體進行排序步驟如下1.先寫c++標頭檔案# include<iostream># include<algorithm> //這個是sort的標頭檔案 using namespace std; 2.定義一個結構體eg:struct nod

C語言:結構變數進行氣泡排序

C語言:對結構體變數進行氣泡排序 我是一名在校大學生,初次寫部落格,希望各位大佬不喜勿噴,這個小程式,僅供參考,希望對大家有所幫助。 分析題意: 1.定義結構體變數,並給變數賦值 2.使用氣泡排序進行排序。 定義: 1.Input()函式,接收使用者輸入的值。 2.Output()函

ACM零起點2017-7-25(sort用過載運算子結構排序)

上篇文章http://blog.csdn.net/ccnuacmhdu/article/details/76039759 已經用寫cmp函式的方式實現sort對結構體的 排序,下面是通過過載運算子的方式實現sort對結構體進行排序 #include<cstdio&g

Java中如何實現結構?如何結構進行排序?

***今天在做老師佈置的程式設計題時,遇到了本題。感覺這道題如果用C++來解決的話,用結構體比較好吧!哈哈哈,可能還有其他的好方法,但我目前想到的是用結構體來解決比較合理。Java中有結構體嗎?如果有,它是如何實現的呢?例項和解決方法見下。(前面是Java中有關結構體的一些知

list用remove實現結構成員的刪除

1、使用list,首先要包含list.h標頭檔案,並使用std名稱空間     在標頭檔案中增加如下兩行說明: #include <list>using namespace std; 2、定義結構體,需要在結構體裡寫判斷“==”函式,如下所列,這裡重寫的

結構初始化

對結構體 struct a { int b; int c; } 有幾種初始化方式: struct a a1 = {  .b = 1,  .c = 2 }; 或者 struct a a1 = {  b:1,  c:2 } 或者 struct a a1 =

C++使用sort通過cmp實現結構的排序

#include <stdio.h> #include<iostream> #include <string.h> #include<stdlib.h>

關於Go語言,自定義結構標籤的一個妙用.

在Go中首字母大小寫,決定著這此變數是否能被外部呼叫, 例如:在使用標準庫的json編碼自定一的結構的時候: <pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" font-weig

c語言 結構(及相關例題

定義結構 為了定義結構,您必須使用 struct 語句。struct 語句定義了一個包含多個成員的新的資料型別,struct 語句的格式如下: struct Student { int sno; char name[20]; char cname[20]; …

常用演算法模板集1【快速冪】;【歸併】+【逆序】;【】附md語法

常用演算法模板集1 【快速冪】 int pow(int w,int q,int u) //快速冪 { int r=1; while(q>0)