创建乐透券的问题

时间:2015-07-15 19:36:57

标签: c++

我必须创建一个看起来像乐透彩票的打印输出的程序。 然而,我似乎无法获得超级"在正确的地方编号。我们必须在1到56之间生成5个随机数,然后在1到44之间再生一个数(兆数)。所以它应该看起来像这样: enter image description here

由于某种原因,超级数字总是在1到56之间生成的5个随机数之前打印。

#include <iostream>
#include <cstdlib>
#include <ctime>
#include "cs110a2.h"
using namespace std;

void fillup(int x[], int n, int from, int to)
{
    for(int i = 0; i < n; i++)
    {
        x[i] = RAND(from,to);
    }

    cout <<" ";
    cout << RAND(1,44); 
}

int bubble_sort(int x[], int n)   
{
    for(int i = 0; i < n-1; i++)
    {
        int temp;

        for(int j=i+1; j<n ; j++)
        {
            if(x[i] > x[j])
            {
                temp = x[i];
                x[i] = x[j];
                x[j] = temp;
            }
        }
    }
    return(0);        //What! why?
}


void print(int x[], int n)
{
    for(int i = 0; i < n; i++)
    {
        cout << x[i] <<" ";
    }
    cout << endl;
}


int main(int argc, char **argv)
{
    srand(time(NULL)); 

    cout <<"                  Mega" << endl;

    for(int i = 0; i < atoi(argv[1]); i++)
    {
        int lotto[5];

        fillup(lotto,5,1,56);                    

        bubble_sort(lotto,5);

        print(lotto,5);
    }

    return(0);
}

2 个答案:

答案 0 :(得分:1)

将最后两行从填充功能移动到打印功能的结尾。  就像现在一样,你在生成数字之后打印大型数据,而不是在打印之后打印。

答案 1 :(得分:-1)

字符串格式使用\ t(制表符)放置它需要的位置。