#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
double main(){
int N, x;
printf("\nEnter the number of randoms to go into the array = ");
scanf("%d", &N);
double myArray[N];
srand(time(NULL));
for(x = 0; x < N; x++){
myArray[x] = (rand() % 101);
printf("myArray[x]: %d\n" , myArray[x]);
}
printf("\n Unsorted Array \n");
for(x = 0; x < N; x++)
printf("myArray[x]: %d\n" , myArray[x]);
BubbleSort(myArray);
printf("\n Sorted Array \n");
for(x = 0; x < N; x++)
printf("myArray[x]: %d\n" , myArray[x]);
}
这是我的代码。我需要做的是从0-100创建随机值,然后对这些数字进行排序。但是,我似乎无法正确地将数字存储在C中。当我使用5
的测试时,我的输出是:
myArray[x]: -30926580
myArray[x]: -28464932
myArray[x]: -17742016
myArray[x]: -5561396
myArray[x]: -6919840
未排序的数组
myArray[x]: 2048
myArray[x]: 2304
myArray[x]: 2560
myArray[x]: 2816
myArray[x]: 3072
排序数组
myArray[x]: 3584
myArray[x]: 3840
myArray[x]: 4096
myArray[x]: 4352
myArray[x]: 4608
之前我已阅读了几个主题,但我似乎无法找出为什么我的随机无效。
答案 0 :(得分:1)
将myArray键入为双精度数组,然后将其打印为整数。 如果要打印它们,请使用%lf。
答案 1 :(得分:1)
printf()
的一点点细微差别是%d
替换代表“十进制”,而不是“双倍”。 “Decimals”是整数,并且传递双精度printf
期望整数将导致输出错误。
要打印出双精度数,请使用%f
说明符,表示“浮动”。
此外,main
函数应该返回int
,而不是double
。这不是一个大问题,但返回double
是非标准的,可能会混淆执行环境。