真是每天都有不同的想法啊……今天编的感觉又没太多学到东西,但是继续,坚持…… #include<stdio.h> void main() { int i; // char ch; printf("This program is to calculate which year leap year is between 2000 and 2500/n"); // printf("Press x to exit ,any other key to start/n"); printf("/nPlease input a number(2000-2500)/n"); scanf("%d",&i); // while((ch = getche())!='x') while(1) { while(i<2000 || i>2500) { printf("The input number must between 2000 and 2500,input again!/n"); scanf("%d",&i); } while(i>=2000 && i<=2500) { if ((i%4 == 0&&i%100!=0) || (i%100 ==0 && i%400 == 0)) { printf("%d is a leap year /nPlease input another numbers or input 1 to exit/n",i); //怎么把1改成x呢? scanf("%d",&i); if(i == 1) exit(); break; } else { printf("%d is not a leap year /nPlease input another numbers or input 1 to exit/n",i); scanf("%d",&i); if(i == 1) exit(); break; } } } } 上面的程序判断某一年是否是闰年 #include<stdio.h> #include<conio.h> #include<math.h> void main() { int i = 2,x,flag=0; printf("This program is used to judge one number is or isn't a prime/n"); printf("Please input one number,1 to exit/n"); scanf("%d",&x); while(x != 1) { i = 2; for(;i<=x/2;i++) //其实除到n开根号就可以了,但写成sqrt(double(x))竟然不行!?郁闷 { if(x%i == 0) { //printf("%d is not a prime/n1 to exit,any other key to continue/n",x); //scanf("%d",&x); 处理都放在后面 flag = 1 ; break; //这么跳呢?要跳到最后scanf之后的? 标记,好啊 } else flag = 0; } if (flag == 1) { printf("%d is not a prime/n1 to exit,any other key to continue/n",x); scanf("%d",&x); } if (flag == 0) { printf("%d is a prime/n1 to exit,any other key to continue/n",x); scanf("%d",&x); } } } 上面的程序判断一个数是否是素数 这里面有涉及到一个标记的用法,很好,突然想到的一个方法,