IT互联网公司的笔试的输入输出- c++ && python

目录

c++

方式1:

第一种情况:输入n个数,存放在数组中

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    int N;   // 输入总个数
    int temp;
    while (cin >> N)
    {
        vector<int> num;
        for (int i = 0; i < N; i++)
        {
            cin >> temp;
            num.push_back(temp);
        }

        //输出显示
        for (int i = 0; i  < num.size(); i++)
            cout << num[i] << " ";
        cout << endl;
    }
}

输入一行数字,数字之间以空格分割

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
int main()
{
    string str;
    while (getline(cin, str))
    {
        vector<int> num;
        int temp;
        istringstream iss(str);
        while (iss >> temp)
        {
            num.push_back(temp);
        }
        // 输出显示
        for (int i = 0; i < num.size(); i++)
            cout << num[i] << " ";
        cout << endl;
    }
}

输入一行数字,数字之间以逗号隔开

#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
// 输入一行,以逗号隔开
int main()
{
    string str;
    while (getline(cin, str))
    {
        vector<int> num;
        string s;
        for (int i = 0; i < str.length(); i++)
        {
            if (str[i] >= '0' && str[i] <= '9')
            {
                s = s + str[i];
            }
            else
            {
                stringstream ss;
                ss << s;
                int n;
                ss >> n;
                num.push_back(n);
                s = "";
            }
        }
        stringstream ss;
        ss << s;
        int n;
        ss >> n;
        num.push_back(n);
        // 输入结果,输出显示 
        for (int i = 0; i < num.size(); i++)
        {
            cout << num[i] << endl;
        }
    }
}

带有效位数的输出

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <iomanip>
using namespace std;
int main()
{
    float t = 2.354;
    // 输出五位数字
    cout << setprecision(5) << 12.35467 << endl;
    // 输出保留小数点后四个
    cout.setf(ios::fixed);
    cout << fixed << setprecision(6) << t << endl;
    // 取消小数点固定位数
    cout.unsetf(ios::fixed);
    cout << t << endl;
    return 0;
}

方式2:

借用C++中的new/delete

#include "stdlib.h"
#include <iostream>
using namespace std;
 
int main()
{
    int m, n;
    //cout << "请输入行和列:";
    cin >> m >> n;
 
    //动态开辟空间  
    int **p = new int*[m]; //开辟行  
    for (int i = 0; i < m; i++)
        p[i] = new int[n]; //开辟列  
 
    //cout << "请输入数据:";
    for (int i = 0; i < m; i++)
        for (int j = 0; j < n; j++)
            cin >> p[i][j];
 
    //cout << "输出数据:" << endl;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
            cout << p[i][j];
        cout << endl;
    }
 
    //释放开辟的资源  
    for (int i = 0; i < m; i++)
        delete[] p[i];
    delete[] p;
    system("pause");
    return 0;
}

STL中的vector

#include "stdlib.h"
#include <iostream>
#include<vector>
#include <iomanip>
using namespace std;
 
int main()
{
    int m, n;
    //cout << "请输入行和列:";
    cin >> m >> n;
 
    //注意下面这一行:vector <int后两个 "> "之间要有空格!否则会被认为是重载 "> > "。   
    vector<vector<int> > p(m, vector<int>(n));
 
    //cout << "请输入数据:";
    for (int i = 0; i < m; i++)
        for (int j = 0; j < n; j++)
            cin >> p[i][j];
 
    //cout << "输出数据:" << endl;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
            cout << setw(3) << p[i][j];
        cout << endl;
    }
    system("pause");
    return 0;
}

多行输入,Ctrl+Z可退出

int main()
{
    int n, m;
    vector<double> test;
    while (cin>>n>>m)//循环多行输入,回车换行,Ctrl+Z可结束循环
    {
        test.push_back(qiuhe(n, m));
    }
    for (int i = 0; i < test.size(); ++i)
    {
        cout << fixed << setprecision(2) << test[i] << endl;
    }
    return 0;
}

输出小数,保留两位精度

// setprecision example
#include <iostream>     // std::cout, std::fixed
#include <iomanip>      // std::setprecision
using namespace std;
 
int main () {
  double f =3.14159;
  cout << setprecision(5) << f << '\n'; //3.1416
  cout << setprecision(9) << f << '\n'; //3.14159
  cout << fixed;
  cout << setprecision(5) << f << '\n'; //3.14159
  cout << setprecision(9) << f << '\n'; //3.141590000
  return 0;
}

%f 对应 float
%lf 对应 double
%Lf 对应 long double
%e以科学计数法显示
%g在%e和%f中择短显示

Python

更新注意事项:
1、在线编程,需要导入sys,利用sys.stdin.strip().readline().split()读取数据,一行这样的代码,仅仅代表读取一行,如果需要读取多行,可以用多行这样的代码,或者用while true循环读取
2、牛客网结果以print打印的结果为准
3、充分考虑代码的复杂度,能简洁就简洁,不然执行时间过不了,python执行速度相对比较慢

方式1:

1.从控制台输入若干数字,并以空格分隔
2.输出结果为以空格分隔的字符串


def in_put():
    num = raw_input()
    num2 = num.split(' ')
    for i in range(len(num2)):
        num2[i] = int(num2[i])
    return num2

def out_put(x):
    s = " ".join(str(i) for i in x)
    return s

方式2:

牛客网推荐使用sys.stdin.readline()形式输入,输出用print()

'''
输入:
2 3 分别赋给n, m并且转换为int类型
'''
import sys
 
n, m = map(int, sys.stdin.readline().strip().split())
print(type(n))
print('n', n)
print('n', m)

赛码网建议使用input()输入。使用sys.stdin.readline()默认会带换行符,所以要strip(’\n’)进行截取,使用sys.stdout.write(res)标准输出。


'''
输入:
5
(1,2)(5,3)(4,6)(7,5)(9,0)
output:
(4 6)(7 5)(9 0)
'''
 
 
nums = int(input())
points = []
for i in range(0, nums):
    read_list = list(map(int, input().split()))
    # read_list = [int(i) for i in input().split()]
    points.append((read_list[0], read_list[1]))
...
 
for i in points:
    print(i[0], i[1])

输出要注意,按行遍历输出,而不是输出一个list或者tuple

方式3:

普通输入

##输入一行2 3
a = input().split()
print(a) ##["2","3"]
##输入两行
##5
##1 5 6
a = []
b = input()
print(b)##5
s = input().split()
print(s) ##['1','5','6']
for i in s:
    a.append(i)
print(a)##[1,5,6]

输出以空格或者其他字符分开

##空格
print(a, end=' '##逗号
print(a, end=','##

循环输入

##2##两组数据
##222 555 222
##55 558 5552
a = input()##2
b = input()##222 555 222
c = input()##55 558 5552

输出去掉换行符

print(str.replace('\n',''))
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值