我要打印保存在数组中的1000个随机数。数字必须在1到10000之间。
我在srand(time(NULL))
函数中放入了main
,在init
函数中,数组必须填充有随机数。 ausgabe
函数用于格式化输出。
但是rand
用行中的数字填充我的数组。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARR_SIZE 1000
void init(int * ptr, int size){
for (int i = 0; i < size; i++){
*(ptr + i) = (rand() %10000+1);
}
}
void ausgabe(int * ptr, int size){
for (int i = 0; i < size; i++){
printf("%5i\t", * ptr + i);
if ((i + 1) %10 == 0){
printf("\n");
}
}
printf("\n\n");
}
int main(){
int zufall[ARR_SIZE];
srand(time(NULL));
init(zufall, ARR_SIZE);
printf("\n\t\t\t---unsortierte Ausgabe---\n\n");
ausgabe(zufall, ARR_SIZE);
return 0;
}
答案 0 :(得分:4)
* ptr + i
是(*ptr)+i
,而不是*(ptr+i)
。您需要对运算符优先级更加谨慎。 (要学习使用调试器,调试器中的30秒会清楚地表明问题出在打印,而不是初始化。)