用C++实现使用同一个函数名add重载实现对两个整数、三个整数、两个实数、三个实数的相加,并在每次循环中完成对2个整数、3个整数、2个实数、3个实数、1个整数和2个实数、2个整数和1个实数的相加运算。输入数据时提示输入的数据类型。
时间: 2023-05-21 17:05:27 浏览: 161
首先,需要定义一个名为add的函数,并使用函数重载的方式实现对不同数量和类型的参数进行相加运算。可以使用函数模板来实现:
```c
#include <stdio.h>
template<typename T>
T add(T a, T b) {
return a + b;
}
template<typename T>
T add(T a, T b, T c) {
return a + b + c;
}
int main() {
int a, b, c;
float x, y, z;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
printf("%d + %d = %d\n", a, b, add(a, b));
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
printf("%d + %d + %d = %d\n", a, b, c, add(a, b, c));
printf("请输入两个实数:");
scanf("%f %f", &x, &y);
printf("%.2f + %.2f = %.2f\n", x, y, add(x, y));
printf("请输入三个实数:");
scanf("%f %f %f", &x, &y, &z);
printf("%.2f + %.2f + %.2f = %.2f\n", x, y, z, add(x, y, z));
int d = 10;
float e = 3.14;
printf("2个整数、2个实数、1个整数和2个实数、2个整数和1个实数的相加运算(每次循环):\n");
for (int i = 1; i <= 5; ++i) {
switch (i) {
case 1:
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
printf("结果:%d\n", add(a, b));
break;
case 2:
printf("请输入两个实数:");
scanf("%f %f", &x, &y);
printf("结果:%.2f\n", add(x, y));
break;
case 3:
printf("请输入一个整数和两个实数:");
scanf("%d %f %f", &a, &x, &y);
printf("结果:%.2f\n", add(add(a, x), y));
break;
case 4:
printf("请输入两个整数和一个实数:");
scanf("%d %d %f", &a, &b, &x);
printf("结果:%.2f\n", add(add(a, b), x));
break;
case 5:
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
printf("结果:%d\n", add(add(a, b), c));
break;
}
}
return 0;
}
```
在程序中,输入数据时会提示输入的数据类型,根据输入数据的类型来调用对应的add函数进行运算。最后还实现了对不同组合方式的多个参数进行相加运算,并在每次循环中完成这些运算。
阅读全文