最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)對(duì)輸入數(shù)字組進(jìn)行排序

 更新時(shí)間:2015年11月08日 15:07:13   投稿:hebedich  
這里給大家介紹的是通過(guò)某個(gè)方法實(shí)現(xiàn)判斷命令行中輸入的數(shù)字是幾個(gè),這樣再用冒泡法排序的時(shí)候就不用擔(dān)心輸入的是幾個(gè)數(shù)字,用到的知識(shí)主要是冒泡法排序

本是一個(gè)再簡(jiǎn)單不了的功能,然后只是冒泡排序??墒俏以诮换ポ斎霐?shù)列的時(shí)候,只用空格隔開(kāi)然后回車(chē),如果不限定數(shù)的個(gè)數(shù),用scanf并不能完成這個(gè)任務(wù),他循環(huán)獲取,到最后不能判斷獲取結(jié)束,而只能繼續(xù)等待輸入。

這個(gè)時(shí)候我自定義一個(gè)函數(shù),獲取緩存區(qū)中的數(shù)(空格分隔),如果輸入結(jié)束就返回一個(gè)特定的值,這個(gè)函數(shù)是用getchar循環(huán)嵌套實(shí)現(xiàn)的。本人新手,只能弄出這方法。歡迎各位大神指導(dǎo)。

maopao-complex.c

//比較復(fù)雜的數(shù)組接收方法,然后從大到小排序。VC環(huán)境
#include <stdio.h>
#include <stdlib.h>
int over=0;//用于讀取數(shù),如果讀取結(jié)束,為1
int main(void)
{
  //這一部分,接收數(shù)據(jù),判斷數(shù)據(jù)個(gè)數(shù)
  int getvalue(void); //函數(shù)原型。返回從緩沖區(qū)取得的數(shù),如果輸入結(jié)束,返回42949672
  int k;     //子循環(huán)臨時(shí)變量
  int a[100];   //建立100個(gè)數(shù)空間,可增縮范圍
  int num;    //輸入的個(gè)數(shù)
  int ifend = 1; //邏輯變量,控制while語(yǔ)句
  int i=0;    //通用計(jì)次臨時(shí)變量
  int value;   //元素值儲(chǔ)存地
  printf("請(qǐng)輸入任意數(shù)的序列,空格隔開(kāi):\n");
  while (ifend) 
  {
    value = getvalue();
    if(value == 42949672)
      ifend = 0;
    else
    {
      a[i] = value;
      i++;
    }
  } //結(jié)束后,i為數(shù)組成員個(gè)數(shù)
  num = i;
  //開(kāi)始排序
  for (i=0; i < num-1; i++)  //循環(huán)8次,第n次把第n位以后的數(shù)的最大值放第n個(gè)
  {
    for(k=i+1; k<num; k++)  //用k表示后面的各位,遞增。
    {
      if (a[i] < a[k]) //選大數(shù),放第n位
      {
        a[i] = a[i] + a[k];
        a[k] = a[i] - a[k];
        a[i] = a[i] - a[k];//以上三步,把較大值放到a[i]
      }
    }
  }
   
  //輸出新數(shù)組
  printf("排序后:\n");
   
  for (i=0; i<num; i++)
  {
    printf("%d ",a[i]); 
  }
  printf("\n");
 
  return 0;
}
 
 
int getvalue(void)
{
  char a[16]={0};   //數(shù)字接收臨時(shí)數(shù)組
  int k;
  int value=0;
  char temp;
  int last = 1;
  int ifend = 1;
  int i = 0; //用來(lái)定位數(shù)組
  if (over == 1)
  {
    ifend = 0;
    return (42949672);
  }
  temp = getchar();
  while(ifend)
  {
    if (temp == 32)//接收結(jié)束,把臨時(shí)數(shù)組轉(zhuǎn)化成數(shù)字
    {
      value = atoi(a);
      ifend = 0;
    }
    else if (temp == '\n')//緩沖區(qū)已無(wú)數(shù)值
    {
      value = atoi(a);
      over = 1;
      ifend = 0;
    }
    else  //輸入有效數(shù)值
    {
      if (temp == '-')
      {
        last = -1;
      }
      else
      {
        a[i] = temp;
        i++;
      }
      temp = getchar();
    }
  }
 
  value*=last;
  return (value);
}

下面是一個(gè)簡(jiǎn)單的冒泡排序:

#include <iostream>
using namespace std;
void BubbleSort (int* pData,int Count)
{
 int iTemp;
 for(int i=1; i<Count; i++)
 {
  for (int j=Count-1; j>=1; j--)
  {
  if (pData[j]<pData[j-1])
  {
   iTemp=pData[j-1];
   pData[j-1]=pData[j];
   pData[j]=iTemp;
  }
  }
 }
}
void main()
{
 
 int data[]= {10,9,8,7,6,5,4}
 BubbleSort(data,7);
 for (int i=0;i<7;i++)
 cout<<data[i]<<" ";
 cout<<"\n";
}

相關(guān)文章

  • C++ 實(shí)現(xiàn)旋轉(zhuǎn)蛇錯(cuò)覺(jué)的詳細(xì)代碼

    C++ 實(shí)現(xiàn)旋轉(zhuǎn)蛇錯(cuò)覺(jué)的詳細(xì)代碼

    這篇文章主要介紹了C++ 實(shí)現(xiàn)旋轉(zhuǎn)蛇錯(cuò)覺(jué)的詳細(xì)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • C語(yǔ)言算法學(xué)習(xí)之雙向鏈表詳解

    C語(yǔ)言算法學(xué)習(xí)之雙向鏈表詳解

    雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個(gè)數(shù)據(jù)結(jié)點(diǎn)中都有兩個(gè)指針,分別指向直接后繼和直接前驅(qū)。本文主要介紹了C語(yǔ)言算法中雙向鏈表的實(shí)現(xiàn),需要的可以參考一下
    2022-05-05
  • C++?RBTree紅黑樹(shù)的性質(zhì)與實(shí)現(xiàn)

    C++?RBTree紅黑樹(shù)的性質(zhì)與實(shí)現(xiàn)

    紅黑樹(shù)是一種二叉搜索樹(shù),但在每個(gè)結(jié)點(diǎn)上增加一個(gè)存儲(chǔ)位表示結(jié)點(diǎn)的顏色,可以是Red或Black;通過(guò)對(duì)任何一條從根到葉子的路徑上各個(gè)結(jié)點(diǎn)著色方式的限制,紅黑樹(shù)確保沒(méi)有一條路徑會(huì)比其他路徑長(zhǎng)出倆倍,因而是平衡的
    2023-03-03
  • 一文帶你了解C++中的字符替換方法

    一文帶你了解C++中的字符替換方法

    這篇文章主要為大家詳細(xì)介紹了C++中常用的幾個(gè)字符替換方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-04-04
  • C語(yǔ)言中字符串的內(nèi)存地址操作的相關(guān)函數(shù)簡(jiǎn)介

    C語(yǔ)言中字符串的內(nèi)存地址操作的相關(guān)函數(shù)簡(jiǎn)介

    這篇文章主要介紹了C語(yǔ)言中字符串的內(nèi)存地址操作的相關(guān)函數(shù),包括bcopy()函數(shù)和bzero()函數(shù)以及bcmp()函數(shù),需要的朋友可以參考下
    2015-08-08
  • C語(yǔ)言:利用指針編寫(xiě)程序,用梯形法計(jì)算給定的定積分實(shí)例

    C語(yǔ)言:利用指針編寫(xiě)程序,用梯形法計(jì)算給定的定積分實(shí)例

    今天小編就為大家分享一篇C語(yǔ)言:利用指針編寫(xiě)程序,用梯形法計(jì)算給定的定積分實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • C語(yǔ)言實(shí)現(xiàn)2048游戲代碼

    C語(yǔ)言實(shí)現(xiàn)2048游戲代碼

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)2048游戲代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C++11智能指針unique_ptr用法使用場(chǎng)景分析

    C++11智能指針unique_ptr用法使用場(chǎng)景分析

    unique_ptr 是 C++ 11 提供的用于防止內(nèi)存泄漏的智能指針中的一種實(shí)現(xiàn),即使在異常發(fā)生時(shí)也可幫助避免資源泄露。這篇文章主要介紹了C++11智能指針unique_ptr用法介紹,需要的朋友可以參考下
    2021-08-08
  • C++中volatile關(guān)鍵字的使用詳解以及常見(jiàn)的誤解

    C++中volatile關(guān)鍵字的使用詳解以及常見(jiàn)的誤解

    volatile 關(guān)鍵字是一種類(lèi)型修飾符,用它聲明的類(lèi)型變量表示可以被某些編譯器未知的因素更改,比如:操作系統(tǒng),硬件或者其他線(xiàn)程等
    2020-01-01
  • C語(yǔ)言代碼實(shí)現(xiàn)井字棋游戲

    C語(yǔ)言代碼實(shí)現(xiàn)井字棋游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言代碼實(shí)現(xiàn)井字棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評(píng)論

托克托县| 靖宇县| 梅河口市| 平谷区| 六安市| 永州市| 德钦县| 宝鸡市| 清原| 望都县| 富裕县| 阳城县| 本溪| 大足县| 利川市| 弋阳县| 江都市| 盖州市| 岳池县| 丰县| 宜君县| 梁平县| 绩溪县| 镇坪县| 荥经县| 天台县| 界首市| 丹寨县| 青田县| 拉萨市| 阿克| 安义县| 仪陇县| 长白| 霍邱县| 石渠县| 玛曲县| 文安县| 湘阴县| 尖扎县| 延安市|