zoukankan      html  css  js  c++  java
  • 北京理工大学复试上机--2006

    1、写一个程序判断字符串中数字的位置.
    例如:输入 a3b4c5   输出 2 4 6 
    #include <iostream>
    using namespace std;
    int main() {
        string s;
        while(cin >> s) {
            for (int i = 0; i < s.length(); i++) {
                if (!isalpha(s[i])) cout << i + 1 << " ";
            }
        }
        return 0;
    }
    2、写一个能接受int 型的变量,接收变量后能存储原变量(譬如12345)和其反向变量(54321) 最多处理数量为 10 个,当输入达到 10 个或者输入变量为 0 的时候停止。并且在类销毁前输出存储的所有变量。
    例如: 
    输入:
    12345 2234 0 
    输出:
    12345 54321
    2234 4322
    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    int rev(int n) {
        int i = 0, j, m = 1, sum = 0;
        vector<int> v;
        while (n > 0) {
            v.push_back(n % 10);
            n /= 10;
        }
        int cnt = 0;
        for (j = v.size() - 1; j >= 0; j--) {
            if (v[j] == 0 && cnt == 0)
                continue;
            cnt++;
            sum += v[j] * m;
            m *= 10;
        }
        return sum;
    }
    
    int main() {
        int n;
        int i = 0;
        vector<int> v;
        vector<int> v2;
        while (cin >> n) {
            if (n == 0) break;
            v.push_back(n);
            v2.push_back(rev(n));
            i++;
            if (i == 10) break;
        }
        for (i = 0; i < v.size(); i++) {
            cout << v[i] << " " << v2[i] << endl;
        }
        return 0;
    }
    3、写一个CTriangle 类,要求可以接受CTriangle(y,x)形式的构造。表示含义如下:A(0,y) B(0,0) C(x,0)。要求能够处理若干个三角形的相加(点B保持不变,两直角边相加)。
    创建在坐标系中的直角三角形样子如下: 
    |   
    |     
    |       
    B----C 
    输入: 输入有若干行,每行两个数y,x,读到0表示结束。
    输出: 输出一行表示三点坐标,格式参见样例。
    示例1
    输入
    10 20
    1 31
    0 0
    输出
    A(0,11),B(0,0),C(51,0)
    #include <iostream>
    #include <vector>
    using namespace std;
    
    class CTriangle
    {
    public:
        int x = 0, y = 0;
        vector<int> vx, vy;
        void show() {
            for(int i = 0; i < vx.size(); i++) {
                x += vx[i];
                y += vy[i];
            }
            cout << "A(0," << x << "),B(0,0),C(" << y << ",0)" << endl;
        }
    };
    
    
    int main() {
        int a, b;
        vector<int> v1, v2;
        while(cin >> a >> b) {
            if(a == 0 || b == 0) {//这里可能需要读取两个数都为0,因为前面cin是两个
                CTriangle cc;
                cc.vx = v1;
                cc.vy = v2;
                cc.show();
                v1.clear();
                v2.clear();
                continue;//继续下一组数据的循环
            }
            v1.push_back(a);
            v2.push_back(b);
        }
        return 0;
    }

    PS: 又是类类类!! 害   以后一定搞懂它,如有不对地方,欢迎大佬指正!

  • 相关阅读:
    VS2005中“ASP.NET Web 应用程序”比“ASP.NET 网站”好处多啊
    让你的ASP.NET虚拟主机也支持子网站
    单线程程序避免界面假死
    用什么版本的Oracle
    Windows Forms DataGridView 中合并单元格
    关于asp.net 2.0 的虚拟主机
    RedHat enterprise6.3 samba服务安装和配置
    苹果面试8大难题及答案
    新版编译器编译内核 version `GLIBCXX_3.4.9' not found
    Source insight 支持汇编
  • 原文地址:https://www.cnblogs.com/ache/p/12539574.html
Copyright © 2011-2022 走看看