#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
// 1. (**)随机产生20个[10 , 100]的正整数,输出这些数以及他们中的最大数
// int max = 0;
// for (int i = 0; i < 20; i++) {
// int ran = arc4random()%(100-10+1)+10;
// if (ran > max) {
// max = ran;
// }
// printf("%d ",ran);
// }
// printf("\nmax = %d",max);
// 2. (**)编程将所有“水仙花数”打印出来,并打印其总个数。 “水仙花数”是一个 各个位立方之和等于该整数的三位数。
// int a = 0 , b = 0 , c = 0 ,count = 0;
// for (int i = 100; i <1000 ; i++) {
// a = i / 100;
// b = i % 100 / 10;
// c = i % 10;
// if (a * a * a + b * b * b + c * c * c == i) {
// printf("%d ",i);
// count++;
// }
// }
// printf("\n总个数为:%d",count);
// 3. (**)已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合
// int a = 0 , b = 0 , c = 0 ,d = 0;
// for (int i = 100; i <= 500 ; i++) {
// a = i / 100;
// b = i % 100 / 10;
// c = i % 10;
// d = c * 100 + b * 10 + a;
// if (i + d ==1333) {
// printf("%d ",i);
// }
// }
// 4. (***)输入两个数,求最大公约数和最小公倍数。
// int a = 0 , b = 0 , max = 1 ,min = 0;
// printf("输入两个数:\n");
// scanf("%d,%d",&a,&b);
// for (int i = 1; i < a; i++) {
// if ((a % i == 0)&&(b % i == 0)&&(i > max)) {
// max = i;
// }
// }
// min = a * b / max;
// printf("最大公约数:%d 最小公倍数:%d",max,min);
// 5. (***)一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高
// float sum = 100.0 , high = 100.0;
// for (int i = 1; i < 10; i++) {
// high = high / 2;
// sum += high * 2;
// }
// high = high / 2;
// printf("共经过%.2f米,第十次反弹%.2f米高",sum,high);
// 6. (****)输入n,分别用*输出边长为n的实心菱形和空心菱形。
//实心菱形
// printf("输入n:\n");
// int n = 0;
// scanf("%d",&n);
// for (int i = 1; i <= n; i++) {
// for (int j = n - i; j > 0 ; j--) {
// printf(" ");
// }
// for (int k = 1; k < 2 * i ; k++) {
// printf("*");
// }
// printf("\n");
// }
// for (int i = 1; i < n ; i++) {
// for (int j = 0; j < i ; j++) {
// printf(" ");
// }
// for (int k = 1; k < 2 * (n - i) ; k++) {
// printf("*");
// }
// printf("\n");
// }
//空心菱形
// printf("输入n:\n");
// int n = 0;
// scanf("%d",&n);
// for (int i = 1; i <= n; i++) {
// for (int j = n - i; j > 0 ; j--) {
// printf(" ");
// }
// printf("*");
// for (int j = 0; j < 2 * i - 3 ; j++) {
// printf(" ");
// }
// if(i > 1){
// printf("*");
// }
// printf("\n");
//
// }
//
// for (int i = 1; i < n ; i++) {
// for (int j = 0; j < i ; j++) {
// printf(" ");
// }
// printf("*");
//
// for (int j = 2 * n - 2 * i - 3; j > 0 ; j--) {
// printf(" ");
// }
// if(i < n - 1){
// printf("*");
// }
// printf("\n");
// }
// 7.(****)反复校验用户输入的生日,包括年、月、日。直到年、月、日都合法
printf("输入生日,以逗号隔开:\n");
int year = 0, mouth = 0,day = 0;
BOOL birth = YES;
do{
BOOL birth = YES;
scanf("%d,%d,%d",&year,&mouth,&day);
if (year > 2015 || year < 0) {
birth = NO;
printf("年份输入错误");
}
if (mouth < 0 || mouth > 12) {
birth = NO;
printf("月份输入错误");
}
switch (mouth) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day < 0 || day >31){
birth = NO;
printf("日输入错误");
}
break;
case 4:
case 6:
case 9:
case 11:
if(day < 0 || day >30){
birth = NO;
printf("日输入错误");
}
break;
case 2:
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
if(day < 0 || day >29){
birth = NO;
printf("%d是闰年,输入错误",year);
}
}else{
if(day < 0 || day >28){
birth = NO;
printf("%d不是闰年,输入错误",year);
}
}
break;
default:
break;
}
if (birth == YES) {
printf("输入正确!");
}else{
printf("输入错误!\n请重新输入:\n");
}
}while(birth == YES);
return 0;
}