【发布时间】:2014-12-28 23:13:54
【问题描述】:
所以我正在创建一张带有随机值的彩票,然后对其进行排序。我不担心排序技术,因为老师没有在这个作业中寻找课程等,它有效,但是,我产生的票值 - 尽管使用了 srand (time(0)) ,然后是 rand () % 40 + 1 - 我认为这应该使我的随机数在 1-40 之间...但 mainTicket[0] 始终等于 0。有什么想法吗?对格式感到抱歉,让我添加了额外的空格并弄乱了我的缩进。
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void mainLotto (int main[]);
void lottoSort (int ticketArr[]);
int main()
{
int mainTicket[5];
srand (time(0));
mainLotto(mainTicket);
do
{
lottoSort(mainTicket);
} while (mainTicket[0] > mainTicket[1] || mainTicket[1] > mainTicket[2] || mainTicket[2] > mainTicket[3] || mainTicket[3] > mainTicket[4] || mainTicket[4] > mainTicket[5]);
for (int i = 0; i < 5; i++)
{
cout << mainTicket[i] << "\n\n";
}
return 0;
}
///
/// <> Creates the actual lottery ticket
///
void mainLotto (int main[])
{
// Creating the ticket
for (int i = 0; i < 5; i++)
{
main[i] = rand() % 40 + 1;
}
}
///
/// <> Sorts the actual lottery ticket
///
void lottoSort (int ticketArr[])
{
// Sorting the ticket
for (int j = 0; j < 5; j++)
{
if (ticketArr[j] > ticketArr[j+1])
{
int temp;
temp = ticketArr[j+1];
ticketArr[j+1] = ticketArr[j];
ticketArr[j] = temp;
}
}
}
【问题讨论】:
-
ticketArr[j+1]越界 -
只是一个提示供进一步考虑:尝试将自己的行长度限制在 80 左右,尤其是在您在线发布的代码上。让读者水平滚动真的很糟糕。此外,始终如一地应用适当的缩进(选择一种常见的样式,如 K&R)确实很有帮助,不仅在这里,而且对您自己也是如此。
-
我确实使用了一种恒定的缩进形式,但我不缩进第一件事,这是我在这里编码时必须做的。不过,我可能会在这里开始做它以备将来使用,谢谢您的提示!