考研機試——找最小數
阿新 • • 發佈:2021-01-11
題庫連結:https://blog.csdn.net/weixin_43905586/article/details/112438701
用時:30分鐘
分享名言一句
- Freedomisnotlettingyoudowhateveryouwanttobutteachingyounottodothethingsyoudon'twanttodo. ——Kant
- 自由不是讓你想做什麼就做什麼,自由是教你不想做什麼,就可以不做什麼。——康德
時間限制:C/C++ 1秒,其他語言2秒空間限制:C/C++ 64M,其他語言128M
題目描述
第一行輸入一個數n,1 <= n <= 1000,下面輸入n行資料,每一行有兩個數,分別是x y。輸出一組x y,該組資料是所有資料中x最小,且在x相等的情況下y最小的。
輸入描述:
輸入有多組資料。
每組輸入n,然後輸入n個整數對。
輸出描述:
輸出最小的整數對。
示例1
輸入
5
3 3
2 2
5 5
2 1
3 6
輸出
2 1
鄙人拙見
- 找出x中的最小值
- 將它們存入一個新陣列
- 再從新陣列中找出y最小的那個
C++參考程式碼1.0:
#include <iostream> #include <bits/stdc++.h> using namespace std; int main() { int n; scanf("%d",&n); int num[n][2]; for(int i = 0; i < n; i++) { for(int j = 0; j < 2; j++) { scanf("%d",&num[i][j]); } } int min = 123456789; for(int i = 0; i < n; i++) { if(num[i][0] < min) { min = num[i][0]; } } int count = 0; for(int i = 0; i < n; i++) { if(num[i][0] == min) { count++; } } int newnum[count][2]; int t = 0; for(int i = 0; i < n; i++) { if(num[i][0] == min) { newnum[t][0] = num[i][0]; newnum[t][1] = num[i][1]; t++; } } int minmin = 123456789; for(int i = 0; i < count; i++) { if(newnum[i][1] < minmin) { minmin = newnum[i][1]; } } for(int i = 0; i < count; i++) { if(newnum[i][1] == minmin) { printf("%d %d",newnum[i][0],newnum[i][1]); } } return 0; }