做网站下载哪个软件,网站域名 文件夹,下载app浏览器,如何制作个人网页页很多同学在刷完真题后#xff0c;就直接去考试了#xff0c;会发现不是卡在了题目的难度上#xff0c;而是卡在了代码数据的如何输入上。为了避免各位有志之士忽略小细节而导致的前功尽弃#xff0c;博主特意总结了华为机考试题数据输入的几种情况及其源代码#xff0c;仅…很多同学在刷完真题后就直接去考试了会发现不是卡在了题目的难度上而是卡在了代码数据的如何输入上。为了避免各位有志之士忽略小细节而导致的前功尽弃博主特意总结了华为机考试题数据输入的几种情况及其源代码仅供各位有志之士参考。
具体如下
情况1
输入一行两个整数
/*
输入数据
1 5
10 20
*/
#include iostream
using namespace std;int main(){int a,b;while(cin a b){cout ab endl;}return 0;
}
情况2
输入第一行包括一个数据数组t 接下来每行包括两个正整数a,b
/*
输入第一行包括一个数据数组t
接下来每行包括两个正整数a,b
2
1 5
10 20
*/
#include iostream
using namespace std;int main(){int t;cin t;int a,b;while(t){cin a b;t--;}return 0;
}
情况3
输入包括两个正整数a,b输入数据有多组如果输入为0 0 则结束输入
/*
输入包括两个正整数a,b输入数据有多组如果输入为0 0 则结束输入
1 5
10 20
0 0
*/
#include iostream
using namespace std;int main(){int a,b;while(true){cin a b;if(a 0 b 0){break;}cout a b endl; }return 0;
}
情况4
输入数据包括多组 每组数据一行每行第一个整数位整数的个数nn为0的时候结束输入 接下来n个正整数既需要求和每个正整数
/*
输入数据包括多组
每组数据一行每行第一个整数位整数的个数nn为0的时候结束输入
接下来n个正整数既需要求和每个正整数
4 1 2 3 4
5 1 2 3 4 5
0
*/#include iostream
using namespace std;
int main(){int n;while(true){cin n;if(n 0){break;}int temp 0;int sum 0;for(int i 0; i n;i){cin temp;sum sum temp;}cout sum endl; }return 0;
}
情况5
输入的第一行包括一个正整数t表示数据数组 接下来t行每行一组数据 每行的第一个整数位整数的个数n 接下来n个正整数既需要求和每个正整数
/*
输入的第一行包括一个正整数t表示数据数组
接下来t行每行一组数据
每行的第一个整数位整数的个数n
接下来n个正整数既需要求和每个正整数
2
4 1 2 3 4
5 1 2 3 4
*/#include iostream
using namespace std;
int main(){int t;cin t;for(int i 0; i t; i){int n;cin n;int temp 0;int sum 0;for(int j 0; j n; j){cin temp;sum sum temp;}cout sum endl;}return 0;
}
情况6
输入数据多组每行表示一组输入数据 每行的第一个整数位整数的个数n 接下来n个正整数既需要求和每个正整数
/*
输入数据多组每行表示一组输入数据
每行的第一个整数位整数的个数n
接下来n个正整数既需要求和每个正整数
4 1 2 3 4
5 1 2 3 4 5
*/#include iostream
using namespace std;
int main(){int n;while(cin n){ // 输入必须方里边// 利用cin 的fail语句和eof语句 退出循环if(cin.fail()){cin.clear();if(cin.eof()){break;}}int temp 0;int sum 0;for(int i 0; i n; i){cin temp;sum sum temp;}cout sum endl;}return 0;
}
情况7
输入数据多组每行表示一组输入数据 每行不定有n个整数空格隔开
/*
输入数据多组每行表示一组输入数据
每行不定有n个整数空格隔开
1 2 3
4 5
0 0 0 0 0
*/
#include iostream
#include vector
using namespace std;int main() {int n;vectorint arr; // 用于存储每一行的整数// 循环读取直到遇到EOFwhile (cin n) {arr.push_back(n); // 读取一个整数并存入vector// 检查下一个输入是否为整数如果不是比如是换行符或EOF则处理当前行if (cin.peek() \n || cin.peek() EOF) {// 处理当前行数据例如计算和int sum 0;for (int num : arr) {sum sum num;}cout 当前行的和为: sum endl;// 清空当前行的存储准备读取下一行arr.clear(); // 这个清空很关键// 检查是否到达EOF如果是则跳出循环if (cin.peek() EOF cin.eof()) {break;// 对于退出循环很关键这两句代码绝对不能省}}}return 0;
}
情况8
输入有两行第一行数字n 第二行时n个字符串字符串之间用空格隔开
/*
输入有两行第一行数字n
第二行时n个字符串字符串之间用空格隔开
5
c d a bb e*/#include iostream
using namespace std;
#include vector
#include stringint main(){int n;vectorstring str;string s;while(cin s){str.push_back(s);if(cin.get \n){sort(str.begin(),str.end());for(int i 0; i n; i){cout str[i] ;}str.clear();}}return 0;
}
情况9
多个测试用例每个测试用例一行 每行通过空格隔开有n个字符
/*
多个测试用例每个测试用例一行
每行通过空格隔开有n个字符
a c bb
f dddd
nowcoder
*/#include iostream
using namespace std;
#include vector
#include stringbool cmp(const string a, const string b) {return a b; // 使用字典顺序比较
}int main() {string s;vectorstring str;while (cin s) {str.push_back(s);if (cin.get() \n) { // 判断是否一行数据是否输入完成sort(str.begin(), str.end(),cmp);for (int i 0; i str.size(); i){cout str[i] ;}cout endl;str.clear(); // 清空数组等待重新输入下一行 }}return 0;
}
情况10 /*
多个测试用例每个测试用例一行
每行通过英文逗号隔开有n个字符
a,c,b
f,dddd
nowcoder
*/#include iostream
using namespace std;
#include vector
#include string
#include sstreamint main() {vectorstring str;while (true) {// 使用逗号作为分隔符读取字符串string inputLine;getline(cin, inputLine); // 读取整行文本stringstream ss(inputLine);string s;while (getline(ss, s, ,)) { str.push_back(s);}sort(str.begin(), str.end(), cmp);for (int i 0; i str.size(); i){ if (i str.size()-1) {cout str[i];}else {cout str[i] ,;}}cout endl;str.clear(); // 清空数组等待重新输入下一行if (cin.peek() EOF || cin.eof()) {break; // 对于退出循环很关键这两句代码绝对不能省}}return 0;
}
情况11
在诸如题目定义了很大的数据范围的时候要选择合适的数据类型定义变量
/*
例如定义的两个变量的值的范围[1, 1e10]
这个时候就不能使用int数据类型而是需要使用long或者long long数据类型
*/#include iostream
using namespace std;int main(){long long a,b;cout ab endl;return 0;
}
--------------------------------------------------------仰望分割符---------------------------------------------------------
如果坐在电脑前的你看到这里说明你已经向成功迈出了一大半前途不可限量加油吧骚年 此处是一个巨型表情包