问题遇到的现象和发生背景
利用时间随机函数取值填入6位数组,但是每次只有第六个数被填上了,FOR循环定义i = 0 开始但是永远显示先i = 6
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i, j;
int value;
int arr[6] = {0};
time_t timer = time(NULL);
srand ((size_t)time(NULL));
printf("%d\n", sizeof(arr) / sizeof(arr[0]));
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++);
{
value = rand() % 32 + 1;
printf("value = %02d\n", value);
arr [i] = value;
printf("i = %d\n", i);
for (j = 0; j < i; j++)
{
if (arr[j] == value)
{
break;
}
}
printf("j = %d\n", j);
if (j != i)
{
i--;
}
}
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++);
{
printf("arr[%d] = %02d\n ", i, arr[i]);
printf("i = %d\n", i);
}
return 0;
}
运行结果及报错内容
6
value = 01
i = 6
j = 6
arr[6] = 01
i = 6
我的解答思路和尝试过的方法
中间的printf函数就是为了查看错误在哪,但是看不出来
我想要达到的结果
解决这个问题