// C language
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int ArrRoom[10] = {0,};
srand(time(NULL));
For (inti = 0; i < 10; i++) // Enter a random number from 1 to 10 in the ArrRoom array
{
int ran = (rand() % 10) + 1;
ArrRoom[i] = ran;
}
for (inti = 0; sizeof(ArrRoom)/sizeof(int)-1; i++) // order theorem
{
int change = 0; // value storage variable
if (ArrRoom[i] > ArrRoom[i+1])
{
change = ArrRoom[i+1];
ArrRoom[i+1] = ArrRoom[i];
ArrRoom[i] = change;
}
}
for (inti = 0; sizeof(ArrRoom)/sizeof(int); i++) // execution result output
{
printf("%d ",ArrRoom[i]);
}
return 0;
}
I receive random numbers from 1 to 10 and try to sort them in order, but when I run it, the error "Segmentation fault (core dumped)" appears, but I don't know why it comes out like this.
c segmentation-fault
Look again at the for grammar. Also, use #define for constants.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define COUNT 10
int main()
{
int ArrRoom[COUNT] = {0,};
srand(time(NULL));
For (inti = 0; i < COUNT; i++) // Enter a random number from 1 to 10 in the ArrRoom array
{
int ran = (rand() % COUNT) + 1;
ArrRoom[i] = ran;
}
for (inti = 0; i < sizeof(ArrRoom)/sizeof(int); i++) // order theorem
{
int change = 0; // value storage variable
if (ArrRoom[i] > ArrRoom[i+1])
{
change = ArrRoom[i+1];
ArrRoom[i+1] = ArrRoom[i];
ArrRoom[i] = change;
}
}
For (inti = 0; i < sizeof(ArrRoom)/sizeof(int); i++) // execution result output
{
printf("%d ",ArrRoom[i]);
}
return 0;
}
© 2024 OneMinuteCode. All rights reserved.