| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:怎麼印出輸入數字裡比0大的數
只看楼主 加入收藏
s61207123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-11-24
结帖率:0
收藏
 问题点数:0 回复次数:3 
怎麼印出輸入數字裡比0大的數
1. 先連續‧‧輸入6個不同‧‧整數,正負不拘,在-50~30間 (假設不會輸入0, 也不會輸入浮點數)
例如你輸入: -19, 23, 15, 16, -21, -43
2. 先印出你名字,再換行只印出輸入6個數字中大於0的數。
例如上例:xxx
23, 15, 16
3. 找出最大的正數及最小正數,然後印出它們的差 然後印出它們的差是? 再印出 ? 個 * 號
例如上例:它們的差是8 ********


#include "stdafx.h"
#include<iostream>
using namespace std;

    int main(void) {
        int i, n, lo, hi;
        for (i = 6; (i>0) && (cin >> n); --i)
            if (6 == i)lo = hi = n;
            else {
                if (hi<n) hi = n;
                if (n>0 && (0>lo || n<lo)) lo = n;
               
            }
            if (0 >= lo) lo = hi;
            if (0 >= lo) cout << "not found!" << endl;
            else {
               
                cout << "他們的差是 " << hi - lo << " ";
                for (n = lo; n<hi; ++n)cout << '*';
                cout << endl;
                system("pause");
            }
    return 0;
搜索更多相关主题的帖子: include 最大的 
2015-11-25 14:57
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
C++的差不多是这样:
程序代码:
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <iterator>
using namespace std;

int main( void )
{
    int arr[6];

    const size_t arr_n = sizeof(arr)/sizeof(arr[0]);
    // 1. 先連續輸入6個不同整數
    std::copy_n( std::istream_iterator<int>(cin), arr_n, arr );
    // 2. 先印出你名字,再換行只印出輸入6個數字中大於0的數。
    cout << "your name\n";
    std::copy_if( arr, arr+arr_n, std::ostream_iterator<int>(cout," "), [](int value) { return value>0; } );
    cout << '\n';
    // 3. 找出最大的正數及最小正數,然後印出它們的差 然後印出它們的差
    int minval = std::max( 0, *std::min_element( arr, arr+arr_n, [](int a,int b) { if(a>0&&b>0) return a<b; return a>b; } ) );
    int maxval = std::max( 0, *std::max_element( arr, arr+arr_n ) );
    cout << (maxval-minval) << ' ' << setw(maxval-minval) << setfill('*') << "" << endl;

    return 0;
}
输入
-19 23 15 16 -21 -43
输出
your name
23 15 16
8 ********

2015-11-25 16:07
s61207123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-11-24
收藏
得分:0 
回复 2楼 rjsp
那請問
如果只能用迴圈呢.不用陣列
2015-11-25 16:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 3楼 s61207123
不明白,是这个意思吗?

程序代码:
#include <iostream>
#include <iomanip>
using namespace std;

int main( void )
{
    int maxpos = 0;
    int minpos = 0;
    for( size_t i=0; i!=6; ++i )
    {
        int value;
        cin >> value;

        if( value > 0 )
        {
            cout << value << ' ';

            if( maxpos < value )
                maxpos = value;

            if( minpos==0 || minpos>value )
                minpos = value;
        }
    }
    cout << '\n' << (maxpos-minpos) << ' ' << setw(maxpos-minpos) << setfill('*') << "" << endl;

    return 0;
}

2015-11-26 09:40
快速回复:怎麼印出輸入數字裡比0大的數
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020619 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved