异常信息
Run-Time Check Failure #3 - The variable 'b' is being used without being initialized.
异常代码:
#pragma warning(disable:4996)//为了防止scanf()函数因为没有返回值而报错
#include <stdio.h> //输出1-100的所有质数
int main() {
int a, b, i;
for (i = 2; i <= 100; i++) {
for (a = 2; a < i; a++) {
if (i != 2){
if (i% a == 0)
b = 1;
//printf("%d是质数", i);
}
else
printf("%d是质数\n", i);
}
if (b==1)
printf("%d是质数\n", i);
}
return 0;
}
正确代码:
#pragma warning(disable:4996)//为了防止scanf()函数因为没有返回值而报错
#include <stdio.h> //输出1-100的所有质数
int main() {
int a, b, i=2;
for (i = 2; i <= 100; i++) {
b = 0; //目的是重置标志位,之前的BUG就是因为没有重置
for (a = 2; a < i; a++) {
if (i % a == 0) {
//可以整除时。 让最后一个比较的数有特效
b = 1; //质数标志位
break;
//printf("%d是质数", i);
}
}
if (b != 1)
printf("%d是质数\n", i);
}
return 0;
}