屏幕上没有输出数组的内容。
#include
#include
#include
using namespace std;
int main() {
//决定数组长度
unsigned short length;
srand((unsigned)time(NULL));
length = (unsigned)rand() % 128;
cout << "数组长度:" << length << "\n" << endl;
//创建数组
int *array = (int *)malloc(sizeof(int) * length);
//发牌
{
int *operating;
operating = array;
int i;
cout << "数组:" << endl;
for (i = 0; i++; i < length) {
srand((unsigned)time(NULL));
*operating = (unsigned)rand();
cout << "\b" << *operating << "\u0020" << endl;
operating++;
}
}
return 0;
}
(1)for循环的第二个表达式和第三个表达式写反了。i<lengh在中间作为循环条件,i++在最后。
for (i = 0; i<length; i++)
(2)for循环中没必要在执行一次srand(),如果不改变随机数种子,一个代码中只需要调用一次srand()就可以了
代码:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
//决定数组长度
unsigned short length;
srand((unsigned)time(NULL));
length = (unsigned)rand() % 128;
cout << "数组长度:" << length << "\n" << endl;
//创建数组
int* array = (int*)malloc(sizeof(int) * length);
//发牌
{
int* operating;
operating = array;
int i;
cout << "数组:" << endl;
for (i = 0; i<length; i++) { //修改1
//srand((unsigned)time(NULL)); 修改2,这一句不需要,一个代码中,随机数种子设置一次就可以了
*operating = (unsigned)rand();
cout << "\b" << *operating << "\u0020" << endl;
operating++;
}
}
return 0;
}
循环条件和递增写反了吧
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
//决定数组长度
unsigned short length;
srand((unsigned)time(NULL));
length = (unsigned)rand() % 128;
cout << "数组长度:" << length << "\n" << endl;
//创建数组
int *array = (int *)malloc(sizeof(int) * length);
//发牌
{
int *operating;
operating = array;
int i;
cout << "数组:" << endl;
for (i = 0; i < length; i++) {
srand((unsigned)time(NULL));
*operating = (unsigned)rand();
cout << "\b" << *operating << "\u0020" << endl;
operating++;
}
}
return 0;
}
lower_bound(arr[],arr[]+size , indx)
返回查找元素的第一个可安插位置,也就是“元素值>=查找值”的第一个元素的位置