Я относительно новичок в C, и я пытаюсь запустить программу. Это программа, в которой перечислены все простые числа от 1 до 1000. Способ компиляции - это ввести gcc Primes.c
в командную строку и запустить ее в NppExec.Программа будет компилироваться, но не исполнять
Код:
#include <stdio.h>
#include <math.h>
int x;
int bool = 1;
int y;
main() {
for (x = 2; x <= 100; x++) {
bool = 1;
for (y = 0; y <= floor(x/2); y++) {
if (x % y == 0) {
bool = 0;
}
}
if (bool == 1) {
printf("%d\n", x);
}
}
}
I типа:
NPP_SAVE
CD $(CURRENT_DIRECTORY)
C:\MinGW32\bin\gcc.exe -g "$(FILE_NAME)"
a
в поле, а затем выполнить. Появится окно и скажет, что a.exe
прекратил работу. Есть какие нибудь идеи как это починить?
Не используйте 'bool' в качестве имени переменной, это действительно может быть определен тип в С. –
Не пытайтесь оценить' х % y', когда 'y'' 0'. Это ошибка деления на нуль. Вам также не нужно использовать 'floor (x/2)'. Просто 'x/2' будет достаточно, так как' x' является целым числом. Вызов 'floor' не имеет никакой цели, кроме как преобразовать его в' double' без какой-либо полезной причины. –
Скомпилируйте все предупреждения и отладочную информацию 'gcc -Wall -Wextra -g', затем ** используйте отладчик ** (' gdb'), чтобы узнать, как его использовать. –