C/C++ 讀入一個整型陣列,陣列大小未知
連結:https://www.nowcoder.com/questionTerminal/eac8c671a0c345b38aa0c07aba40097b
來源:牛客網
輸入n個整數,輸出出現次數大於等於陣列長度一半的數。
輸入描述:
每個測試輸入包含 n個空格分割的n個整數,n不超過100,其中有一個整數出現次數大於等於n/2。
輸出描述:
輸出出現次數大於等於n/2的數。
示例1
輸入
3 9 3 2 5 6 7 3 2 3 3 3
輸出
3
#include<stdio.h>
#include <map>
using namespace std;
int main(){
int tem,cou=0,a[100];
map<int,int> m;
char ch;
while(~scanf("%d%c",&tem,&ch)){ //也可寫成scanf("%d%c",&tem,&ch),結果一樣
a[cou++]=tem;
m[tem]++;
if(ch=='\n'){
break;
}
}
int l=cou/2;
map<int,int>::iterator it;
for (it=m.begin();it!=m.end();it++)
{
if (it->second >= l)
{
printf("%d\n",it->first);
break;
}
}
system("pause");
return 0;
}
這裡~scanf的含義如下:
scanf
函式返回成功讀入的資料項數,讀入資料時遇到了“檔案結束”則返回EOF。
scanf
(
"%d %d"
,&a,&b);
函式返回值為
int
型。如果a和b都被成功讀入,那麼
scanf
的返回值就是2;
如果只有a被成功讀入,返回值為1;
如果a和b都未被成功讀入,返回值為0;
如果遇到錯誤或遇到end of file,返回值為EOF。其中EOF的值為-1
也就是說
scanf
返回值的取值範圍是大於等於-1的整數,只有返回值為EOF時,其取反的的值,即
while
迴圈的判斷條件才為0,才能結束迴圈。
(-1的補碼錶示全是1,按位取反後全是0,即為假)其它輸入情況下(無論是否輸入成功),
while
迴圈的判斷條件為非0,即為真)
相關文章
- C++ 獲取陣列大小、多維陣列操作詳解C++陣列
- C++陣列 字串C++陣列字串
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- c++陣列排序插入C++陣列排序
- c++中的陣列C++陣列
- C++陣列長度C++陣列
- C++ ——vector陣列筆記C++陣列筆記
- 編寫一個函式,實現兩個整型陣列的合併(將兩個整型陣列a和b合併成一個從小到大有序排列的整形陣列c,並在主函式中測試)。函式陣列
- C++ 陣列的 auto 和 decltypeC++陣列
- C++陣列的連續性C++陣列
- c++筆記_多維陣列C++筆記陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- C++查詢一個數是否在陣列中find用法C++陣列
- Python多個陣列合並(拼接)為一個陣列Python陣列
- C++ 陣列宣告和初始化C++陣列
- C++ 使用 new 建立二維陣列C++陣列
- C++ 煉氣期之陣列探幽C++陣列
- C++獲取陣列的長度C++陣列
- C++陣列預設初值問題C++陣列
- 一個陣列和另一個陣列比較,如果第一個陣列裡面有的就不新增了陣列
- 將兩個有序陣列合併為一個有序陣列陣列
- 兩個有序陣列如何合併成一個有序陣列陣列
- C/C++獲取二維陣列行列數C++陣列
- 獲取C/C++字串、字元陣列長度C++字串字元陣列
- [求解]陣列,分成倆個陣列,陣列值之和的相差最小。陣列
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列
- c++遍歷陣列的多種方式C++陣列
- C++ Break、Continue 和 陣列操作詳解C++陣列
- SWIG 打包C++陣列供python呼叫 tcyC++陣列Python
- c++ -- 二維陣列引數傳遞C++陣列
- 記一次陣列操作:陣列 A 根據陣列 B 排序陣列排序
- c# 陣列排序C#陣列排序
- C語言陣列C語言陣列
- 陣列004 動態建立一維陣列陣列
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- C++ 練氣期之二維陣列與矩陣運算C++陣列矩陣
- 物件陣列 根據key 把一樣的push到一個陣列物件陣列