关于的c语言程序算法~死循环?
#include <stdio.h>
int isprime(long num){
for(long i=2;i <num;i++){
if(num%i==0) return 0;}
return 1;
}
void main(){
long num;
char decide;
while(decide!= 'Y '||decide!= 'y '){
decide= 'n ';
printf( "请输入一个大于6的偶数: ");
scanf( "%ld ",&num);
while(num <=6||num%2!=0){
printf( "请输入一个大于6的偶数: ");
scanf( "%ld ",&num);
}
for(long i=3;i <=num/2;i++)
for(long j=num/2;j <num;j++){
if(i+j==num){
if(isprime(i)&&isprime(j))
printf( "%ld+%ld=%ld\n ",i,j,num);}
}
printf( "您想继续验证吗?(Y for continue,N for exit): ");
scanf( "%ld ",&decide);}
}
[解决办法]
首先
char decide= 'y ';
[解决办法]
decide没有初始化,这是一个不好的习惯,
其次,你好好研究一下这句话
while(decide != 'Y '|| decide != 'y ')
[解决办法]
while(decide != 'Y '|| decide != 'y ') 这行肯定有问题,不管decide等于什么,都将执行下面while里的代码。我估计lz是不是要改为
while(( 'Y '==decide) || ( 'y '==decide))。