题目描述:

编写一个函数myPrint,模拟python的print函数的部分功能,可以接收a、b、c三个整数并打印,默认以空格分隔并在最后换行。用户也可以指定分隔符(作为第四个参数,至少支持,;|-四种,不需要支持空格、制表符和回车)和指定行尾符(作为第五个参数,至少支持,;|-四种,不需要支持空格、制表符和回车)

输入格式:

每组输入包含两行
第一行是a、b、c三个整数,空格隔开
第二行的开始是一个数字(0、1或2)表示后续参数个数。如果是0,表示无后续参数,分隔符和行尾符都使用默认参数;如果是1,后面将跟随输入要使用的分隔符,而行尾符用默认参数;如果是2,后面将跟随输入要使用的分隔符和行尾符。【多组输入】

输出格式:

myPrint对应的输出,注意使用正确的分隔符和行尾符

输入样例:

1 5 9
0
1 5 9
2 , ;
1 5 9
1 |

输出样例:

1 5 9
1,5,9;1|5|9

题目分析:

我们主要利用定义函数的做法来解决这道题。由题目可以知道,我们这里会有6个参数,其中有一个是要用来判断是否有分隔符和指定行尾符的。那么我们还有输入的分隔符与指定行尾符应该怎么去输入呢?它得先来判断是否存在啊。

那么我们就可以知道,在函数定义的主输入内我们只需要输入4个参数,最后一个参数经过判断后再在函数主体内输入分隔符和指定行尾符,并进行打印。(没错,就是我的小体会。多个参数时还可以在函数主体内输入参数,并且可以作为一个形参)在后面函数调用中,main函数内输入的实参也是可以正常输入到形参中。

分析结束!

代码展示:

#include<iostream>
using namespace std;
void myPrint(int a, int b, int c, int d) {//输入4个参数,最后一个参数经过判断后再在函数主体内输入分隔符和指定行尾符
    char A;//定义的字符型,用于输入分隔符
    char B;//定义的字符型,用于输入指定行尾符
    int arr[3] = { a,b,c };
    if (d == 0) {
        for (int i = 0; i < 3; i++) {
            cout << arr[i] << " ";
        }
        cout << endl;
    }
    else if (d == 1) {//有分隔符无指定行尾符
        cin >> A;
        for (int i = 0; i < 2; i++) {
            cout << arr[i];
            cout << A;
        }
        cout << arr[2];
        cout << endl;
    }
    else if (d == 2) {//有分隔符有指定行尾符
        cin >> A >> B;
        for (int i = 0; i < 2; i++) {
            cout << arr[i];
                cout << A;
        }
        cout << arr[2];
        cout << B;
    }
}

int main() {
    int a, b, c, d;
    char A;//这里定义的依旧可以输入到函数内
    char B;
    while (cin >> a >> b >> c >> d) {
        myPrint(a, b, c, d);
    }
}

定义函数段,节选例子:

void myPrint(int a, int b, int c, int d) {//输入4个参数,最后一个参数经过判断后再在函数主体内输入分隔符和指定行尾符
	char A;//定义的字符型,用于输入分隔符
	char B;//定义的字符型,用于输入指定行尾符
	int arr[3] = { a,b,c };
	else if (d == 1) {//有分隔符无指定行尾符
		cin >> A;
		for (int i = 0; i < 2; i++) {
			cout << arr[i];
			cout << A;
		}
		cout << arr[2];
		cout << endl;

运行结果展示:

 

更多推荐

C++模拟python的print函数部分功能