c++ primer plus 第七章《编程题7.13.7》

本文通过用户输入和数组操作,展示了编程中的输入处理、数组填充、数值转换及数组展示过程,深入探讨了基本的数据输入与处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 Enter value #1: 10000
 Enter value #2: 8000
 Enter value #3: 2000
 Enter value #4: 10000
 Enter value #5: -9
 Value #1: 10000
 Value #2: 8000
 Value #3: 2000
 Value #4: 10000
 Enter ravalue #1: 0.8
 Enter ravalue #2: .2
 Enter ravalue #3: .1
 Enter ravalue #4: .55
 Value #1: 8000
 Value #2: 1600
 Value #3: 200
 Value #4: 5500
*/
#include <iostream>

using namespace std;

double * Fill_array(double *, int);
void Show_array(double *, double *);
void Revalue_array(double *, double *);

int main() {
    const int SIZE = 6;
    double a[SIZE];

    double * pEnd = Fill_array(a, SIZE);
    Show_array(a, pEnd);

    Revalue_array(a, pEnd);
    Show_array(a, pEnd);
}

double * Fill_array(double a[], int n) {
    int i = 0;
    double temp;
    double * pEnd = a;

    while (i < n) {
        cout << "Enter value #" << i + 1 << ": ";
        cin >> temp;
        if (!cin) {      //  bad input
            cin.clear();
            while (cin.get() != '\n')
                ;
            cout << "Bad input, input process terminated.\n";
            continue;
        }
        else if (temp < 0)
            break;
        a[i] = temp;
        i++;
        pEnd++;
    }

    return pEnd;
}

void Show_array(double a[], double * pEnd) {
    int i = 0;
    while (a < pEnd) {
        cout << "Value #" << i + 1 << ": " << *a++ << "\n";
        i++;
    }
}

void Revalue_array(double a[], double * pEnd) {
    int i = 0;
    double temp;

    while (a < pEnd) {
        cout << "Enter ravalue #" << i + 1 << ": ";
        if (!(cin >> temp)) {      //  bad input
            cin.clear();
            while (cin.get() != '\n')
                ;
            cout << "Bad input, input process terminated.\n";
            continue;
        }
        *a *= temp;
        i++;
        a++;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值