【C++学习笔记3】实验3-c++对C常规性能扩充(2)

【描述】
输入10个整数,存放在一维数组中,找出值最大和最小的元素,输出最大值、最小值及它们所在的元素下标。
【输入】
在一行中输入10个整数,整数以空格间隔。
【输出】
第一行输出最大值及其所在的元素下标,最大值和下标以空格间隔。
第二行输出最小值及其所在的元素下标,最小值和下标以空格间隔。
【输入示例】
1 3 57 9 6 0 8 2 4
【输出示例】
9 4
0 6
【来源】
《程序设计基础——以C++为例》第4章实验1。

#include<iostream>

using namespace std;
int main()
{
    int a[10];
    //max为整形下限, min为整形上限
    int max=INT_MIN,min=INT_MAX,maxIndex,minIndex;
    
    for(int i=0;i<10;i++)
    {
        cin>>a[i];//读入
    }
    for(int i=0;i<10;i++)
    {
        if(a[i]>max)
        {
            max=a[i];//比较记录
            maxIndex=i;
        }
        if(a[i]<min)
        {
            min=a[i];
            minIndex=i;
        }
    }
    cout<<max<<" "<<maxIndex<<endl;//根据题目格式输出
    cout<<min<<" "<<minIndex<<endl;
    return 0;
}

【描述】
定义和调用sum函数,返回若干个整数的和,体会函数默认参数的使用。
【输入】
没有输入。
【输出】
100
106
16
36
【提示】
根据sum函数调用时实参的使用和结果的输出,推测sum函数的声明和实现。

#include <iostream>
using namespace std;


/* 请此处编写sum函数 */
int sum()//重载
{
    return 100;
}

int sum(int a)
{
    return 100+a;
}

int sum(int a,int b)
{
    return a+b;
}

int sum(int a,int b,int c)
{
    return a+b+c;
}



int main() {
    cout << sum() << endl;
    cout << sum(6) << endl;
    cout << sum(6, 10) << endl;
    cout << sum(6, 10, 20) << endl;
    return 0;
}

【描述】
定义和调用三个swapValue函数,实现两个整数、两个浮点数和两个字符的交换。
要求用函数重载实现。函数参数可以是引用。
在main中输入交换前和输出交换后的值。
【输入】
输入的第一行是一个整数n(1≤n≤100),表示测试数据的总数。
接下来的n行,每行为测试数据,包含交换前的两个整数,两个浮点数和两个字符。
【输出】
输出包括n行,每行为测试结果,包含交换后的两个整数、两个浮点数和两个字符。
【输入示例】
2
12345 67890 1.23 8.79 A F
213879 7892 12379.2 8081.23 a u
【输出示例】
67890 12345 8.79 1.23 F A
7892 213879 8081.23 12379.2 u a

#include <iostream>
using namespace std;


/* 请在此处编写swapValue函数 */
//重载
void swapValue(int &a,int &b)//读地址
{
    int t=a;
    a=b;
    b=t;
}
void swapValue(double &a,double &b)
{
    double t=a;//注意t的类型
    a=b;
    b=t;
}
void swapValue(char &a,char &b)
{
    char t=a;
    a=b;
    b=t;
}



int main() {
    int n;
    cin >> n;
    for(int i = 1; i <= n; ++i) {
	int i1, i2;
	cin >> i1 >> i2;	
	double d1, d2;
	cin >> d1 >> d2;
	char ch1, ch2;
	cin >> ch1 >> ch2;
	swapValue(i1, i2);
	swapValue(d1, d2);
	swapValue(ch1, ch2);
	cout << i1 << " " << i2 << " " 
             << d1 << " " << d2 << " " 
             << ch1 << " " << ch2 << endl;
    }
    return 0;
}

【描述】
输入一个数,定义和调用函数:double squareRoot(double x),求x的平方根,如果x是负数,函数抛出一个异常,否则返回x的平方根。要求使用异常机制来处理错误。
【输入】
输入一个数。
【输出】
如果该数是负数,则抛出异常,输出“Invalid”;否则输出该数的平方根。
【输入示例】
-6
【输出示例】
Invalid
【提示】
输出错误信息使用cout,不要使用cerr。【来源】
《程序设计基础——以C++为例》第3章实验12。

#include <iostream>
#include <cmath>
using namespace std;


/* 请在此处编写squareRoot函数 */
double squareRoot(double x)
{
    if(x>=0)
    {
        return sqrt(x);//返回平方根
    }
    else
    {
        throw -1;//抛个异常
    }
}



int main() {
    double x;
    cin >> x;
    try {//激活异常
        cout << squareRoot(x) << endl;
    }
    catch(int) {//捕获异常
        cout << "Invalid" << endl;
    }
    return 0;
}

关于c++的异常详细处理, 可以看这里嗷:https://www.runoob.com/cplusplus/cpp-exceptions-handling.html
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值