64,444
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include <time.h>
//判断有没有重复
int checkRepeat(int * arr, int len)
{
int i = 0, j = 0;
for(j = 0; j < len; ++j)
{
for(i = j + 1; i < len; ++i)
{
if(arr[i] == arr[j])
{
//有重复
return -1;
}
}
}
//无重复
return 0;
}
//得到数据
void getNum(int * arr, int len, int index)
{
srand(time(0));
int min = 15 * (index - 1);
if(min == 0)
{
min = 1;
}
int max = 15 * (index) + 1;
int i = 0, j = 0;
bool flag = false;
while(1)
{
//生成数据
flag = false;
for(i = 0; i < len; ++i)
{
int temp = 0;
while( (temp = rand()%max) < min);
arr[i] = temp;
}
//排重
if(checkRepeat(arr, len) == 0)
return;
}
}
//遍历二维数组, 判断是否有空
int checkEmpty(int arr[5][5], int len, int index)
{
int i = 0, j = 0;
//遍历数据
for(i = 0; i < len; ++i)
{
for(j =0; j < index; ++j)
{
if( arr[i][j] == 0)
{
return -1;
}
}
}
return 0;
}
//遍历数组,打印数据
void Traversal(int arr[5][5], int index, int len)
{
char str[] = "bingo";
int i, j;
for(i = 0; i < 5; ++i)
{
printf("%4c", str[i]);
}
printf("\n");
//遍历数据
for(i = 0; i < len; ++i)
{
for(j =0; j < index; ++j)
{
printf("%4d", arr[i][j]);
}
printf("\n");
}
}
//给二维数组赋值
void getData(int arr[5][5], int index, int len)
{
int i = 0, j = 0;
int temp[5] = {};
//得到数据
for(i = 0; i < len; ++i)
{
getNum(temp, len, i + 1);
for(j =0; j < index; ++j)
{
arr[j][i] = temp[j];
}
memset(temp, 0 , 5);
}
}
int main(void)
{
int arr[5][5] = {};
getData(arr, 5, 5);
if(checkEmpty(arr, 5, 5) == 0)
{
Traversal(arr, 5, 5);
}
else
{
printf("have empty data\n");
}
getchar();
return 0;
}
#include<stdio.h>
#include <time.h>
void getNum(int * arr, int len, int index)
{
int min = 15 * (index - 1);
int max = 15 * (index) + 1;
int i = 0, j = 0;
bool flag = false;
while(1)
{
//生成数据
flag = false;
for(i = 0; i < len; ++i)
{
int temp = 0;
while( (temp = rand()%max) < min);
arr[i] = temp;
}
//排重
for(j = 0; j < len; ++j)
{
for(i = j + 1; i < len; ++i)
{
if(arr[i] == arr[j])
{
flag = true;
break;
}
}
}
if(!flag)
return;
}
}
int main()
{
char str[] = "bingo";
int i, j;
for(i = 0; i < 5; ++i)
{
printf("%4c", str[i]);
}
printf("\n");
int arr[5][5] = {};
int temp[5] = {};
srand(time(0));
bool flag = false;
//得到数据
for(i = 0; i < 5; ++i)
{
getNum(temp, 5, i + 1);
for(j =0; j < 5; ++j)
{
arr[j][i] = temp[j];
}
memset(temp, 0 , 5);
}
//遍历数据
for(i = 0; i < 5; ++i)
{
for(j =0; j < 5; ++j)
{
printf("%4d", arr[i][j]);
}
printf("\n");
}
getchar();
return 0;
}