Чтобы добавить больше деталей :
Во-первых, я согласен с dev7060 и спасибо ему. Есть два аспекта, на которые вы должны обратить внимание:
1) %d\t%d\n
означает, что вы должны ввести три параметра в поток данных. Вы можете видеть это, что я проверял на моей стороне.
Поэтому, пожалуйста, попробуйте это как dev7060 сказал:
scanf("%d%d", &n1, &n2);
И примечание , когда вы вводите один параметр, сначала нажмите пробел, а затем введите второй параметр. %d%d
может захватить две цифры во входном потоке перед вводом любым пробелом, таким как клавиша TAB или пробел, или клавиша ввода. Поэтому, когда вы вводите параметры, вы можете получить их, набрав между ними символ интервала.
2) i=j
означает операцию присваивания, а не операцию сравнения, и она всегда возвращает true. Вы должны использовать if(i==j)
.
Пожалуйста, обратитесь к этому:
#include <iostream>
#include <stdio.h>
#include <conio.h>
int main()
{
int n1, n2, i, j;
printf("Enter two numbers");
scanf("%d%d", &n1, &n2);
printf("The prime numbers in betwn %d and %d are:\n", n1, n2);
for (i = n1; i <= n2; i++)
{
for (j = 2; j < i; j++)
{
if (i % 2 == 0)
{
continue;
}
}
if (i == j)
{
printf("%d\t", i);
}
}
getch();
}
Кроме того , когда вы сталкиваетесь с этими проблемами в VS:
ошибка C4996: 'scanf': эта функция или переменная может быть небезопасной. ошибка
ошибка C4996: 'getch': имя POSIX для этого элемента устарело.
Это ошибки компилятора, и вы должны использовать scanf_s()
вместо scanf()
и использовать _getch()
вместо getch()
. Вы можете сослаться на это .