国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++實現對輸入數字組進行排序

2020-01-26 14:50:07
字體:
來源:轉載
供稿:網友

本是一個再簡單不了的功能,然后只是冒泡排序。可是我在交互輸入數列的時候,只用空格隔開然后回車,如果不限定數的個數,用scanf并不能完成這個任務,他循環獲取,到最后不能判斷獲取結束,而只能繼續等待輸入。

這個時候我自定義一個函數,獲取緩存區中的數(空格分隔),如果輸入結束就返回一個特定的值,這個函數是用getchar循環嵌套實現的。本人新手,只能弄出這方法。歡迎各位大神指導。

maopao-complex.c

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

下面是一個簡單的冒泡排序:

#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";}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连州市| 临颍县| 阿图什市| 潜山县| 清镇市| 南京市| 聂拉木县| 乐陵市| 辉南县| 手游| 灌南县| 嵊泗县| 金乡县| 张家界市| 苗栗县| 墨脱县| 漳平市| 海口市| 东乌珠穆沁旗| 彰武县| 镇原县| 夏河县| 平安县| 容城县| 德州市| 保定市| 宾川县| 称多县| 陆川县| 额尔古纳市| 玛多县| 涞源县| 三明市| 上虞市| 黄大仙区| 平陆县| 满洲里市| 宁南县| 内黄县| 九江市| 元阳县|