C++ 帮忙找个小错误

来源:百度知道 编辑:UC知道 时间:2024/06/18 03:38:01
// 双色球随机生成器.cpp

#include "stdafx.h"
#include <iostream>
#include "math.h"
#include <cstdlib>
#include <time.h>

using namespace std;

int main()
{
int i,j,a[34],x;

for (i=1;i<=33;i++)
{
a[i]=0;
}

j=1;

while (j<=6)
{
srand(time(0));
x=rand() % 33+1;
if (a[x]==0)
{
a[x]=1;
j++;
}
}

srand(time(0));
x=rand() % 16+1;

for (i=1;i<=33;i++)
{
if (a[i]==1) printf("%5d",a[i]);
//这里总是输出“1”
//为什么?怎么解决?
//备注:我想输出1-33的随机数
//备注:编译警告 从“time_t”转换到“unsigned int”,可能丢失数据
}

cout<<" "<<x<<endl<<endl;

数组a[]本来就只有0和1,再加个判断当然输出1了
可以改成
if (a[i]==1) printf("%5d",i);

没想到,都是爱好者,我的“绝算双色球”用basic写的,不过现在源码已遗失了。

你都说了a[i]=1就输出,那不输出1输什么

if (a[i]==1) printf("%5d",a[i]);
把a[i]改成i