首页 > 代码库 > iOS-C_Day5___循环练习
iOS-C_Day5___循环练习
2015.1.23
//循环(计算某个数的位数) 输入一个正整数, 计算这个正整数的位数
//int main(int argc, const char * argv[]) {
// int n;
// int cnt=0;
// scanf("%d", &n);
// while (n) {
// cnt++;
// n/=10;
// }
// printf("cnt = %d\n", cnt);
//
// return 0;
//}
//a=1 b=1
//a+b/a 2/1 a = 2 b = 1
//a+b/a 3/2 a = 3 b = 2
//a+b/a 5/3 a = 5 b = 3
//...
//9 流程控制(数值序列2) 输出数字序列 2/1,3/2,5/3,8/5,13/8,21/13...,输出个数由键盘输入。注意输入使用scanf输入 feibonaqi
//\
//比如:
//
//输入 3输出为
//
//2/1
//3/2
//5/3
//
//输入 4 输出为
//2/1
//3/2
//5/3
//8/5
//\
//int main(int argc,const char *argv[])
//{
// int n;
// int a=1,b=1;
// scanf("%d", &n);
// for (int i=0; i<n; i++) {
// int temp;
// printf("%d/%d ", a+b,a);
// temp = a+b;
// b = a;
// a = temp;
// }
// printf("\n");
// return 0;
//}
//交换两个两个变量的值
//int main(int argc,const char *argv[])
//{
// int a=3, b=5;
// /*
// int tmp = a;
// a = b;//a = 5;
// b = tmp;// b=3;
// printf("a = %d b= %d\n", a, b);
// */
// //不借助中间变量交换a , b 的值
// a=a+b;
// b=a-b;
// a=a-b;
// printf("a = %d b= %d\n", a, b);
// return 0;
//}
//流程控制(数值序列3) 输出数字序列 1,2,3,5,8,13,21...,输出个数由键盘输入。注意输入使用scanf输入
//\
//比如:
//\
//输入 3输出为
//
//1
//2
//3
//
//输入 4 输出为
//1
//2
//3
//5
/*int main(int argc,const char *argv[])
{
int n, a=0,b=1;
scanf("%d", &n);
for (int i=0; i<n; i++) {
printf("%d ", a+b);
int tmp = a+b;
a = b;
b = tmp;
}
return 0;
}*/
//求最大公约数
//辗转相除法
//a b a%b
//319 377 ---> 319
//377 319 ---> 58
//319 58 ---> 29
//58 29 ---> 0
//29 0
//control + i
//int main(int argc, const char *argv[])
//{
// int a, b;
// scanf("%d %d", &a, &b);
// while (b) {
// int tmp = a%b;
// a = b;
// b = tmp;
// }
// printf("%d\n", a);
// return 0;
//}
//流程控制(for求阶乘的和 ) 输入n(int类型),打印1!+2!+3!+4!+5!+。。。+n!的值
//比如:
//
//输入:2
//输出:
//3
//
//输入:3
//
//输出:
//9
//int main(int argc,const char *argv[])
//{
// int Sn = 0;
// int n;
// int temp=1;
// scanf("%d", &n);
// for (int i=1; i<=n; i++) {
// temp = i*temp;// n!
// Sn += temp;
// }
// printf("Sn = %d\n", Sn);
//
// return 0;
//}
//将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
//n i n%i
//90 / 2 ---> 0
//45 / 2 ---> 1
//45 / 3 ---> 0
//15 / 3 ---> 0
//5 / 3 ---> 2
//5 / 4 ---> 1
//5 / 5 ---> 0
//1
//int main(int argc, const char *argv[])
//{
// int n;
// scanf("%d", &n);
// printf("%d=", n);
// for (int i=2; n!=1; i++) {
// if (!(n%i)) {
// n!=i?printf("%d*", i):printf("%d",i);
// n/=i;
// i--;
// }
// }
// printf("\n");
// return 0;
//}
//19. 流程控制(for循环) 输入一个大写字母,如F
//\
//比如:
//\
//输入:F
//\
//输出:
//
// A
// ABA
// ABCBA
// ABCDCBA
// ABCDEDCBA
//ABCDEFEDCBA
/*int main(int argc,const char *argv[])
{
char ch;
scanf("%c", &ch);
for (int i=0; i<ch-‘A‘+1; i++) {
for (int j=0; j<ch-i-‘A‘; j++) {
printf(" ");
}
for (int j=0; j<=i; j++) {
printf("%c", ‘A‘+j);
}
for (int j=i; j>0; j--) {
printf("%c", ‘A‘+j-1);
}
printf("\n");
}
return 0;
}
*/
//21. 流程控制(for循环) 输入一个大写字符,如F
//\
//比如:
//
//输入:F
//
//输出:
//
//FEDCBA
// EDCBAB
// DCBABC
// CBABCD
// BABCDE
// ABCDEF
/*int main(int argc,const char *argv[])
{
char ch;
scanf("%c", &ch);
for (int i=0; i<ch-‘A‘+1; i++) {
for (int j=0; j<i; j++) {
printf(" ");
}
for (int j=i; j<ch-‘A‘+1; j++) {
printf("%c", ch-j);
}
for (int j=0; j<i; j++) {
printf("%c", ‘A‘+j+1);
}
printf("\n");
}
return 0;
}*/
//输入一个大写字符,如F
//比如:
//输入:F
//输出:
//FEDCBA
//EDCBAB
//DCBABC
//CBABCD
//BABCDE
//ABCDEF
//
//输入 B
//输出:
//BA
//AB
//int main(int argc,const char *argv[])
//{
// char ch;
// scanf("%c", &ch);
// for (int i=0; i<ch-‘A‘+1; i++) {
// for (int j=i; j<ch-‘A‘+1; j++) {
// printf("%c", ch-j);
// }
// for (int j=0; j<i; j++) {
// printf("%c", ‘A‘+1+j);
// }
//
// printf("\n");
// }
// return 0;
//}
//输入一个大写字母,如F
//比如:
//输入:F
//输出:
//A
//ABA
//ABCBA
//ABCDCBA
//ABCDEDCBA
//ABCDEFEDCBA
//
//输入:C
//输出:
//A
//ABA
//ABCBA
/*int main(int argc, const char *argv[])
{
char ch;
scanf("%c", &ch);
for (int i=0; i<ch-‘A‘+1; i++) {
for (int j=0; j<=i; j++) {
printf("%c", ‘A‘+j);
}
for (int j=i; j>0; j--) {
printf("%c",‘A‘+j-1);
}
printf("\n");
}
return 0;
}*/
//输入年月日, 判断是一年中的第多少天
//2015 1 31 //31
//2015 3 1 //31 + 28 + 1 = 60
//2012 3 1 //31 + 29 + 1 = 61
int main(int argc,const char *argv[])
{
int year, month, day;
int total=0;
scanf("%d %d %d", &year, &month, &day);
for (int i=1; i<month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
total+=31;
break;
case 2:
if ((!(year%4) && year%100) || !(year%400)) {
total+=29;
}
else
{
total+=28;
}
break;
case 4:
case 6:
case 9:
case 11:
total+=30;
break;
default:
break;
}
}
total+=day;
printf("总天数%d\n", total);
return 0;
}
iOS-C_Day5___循环练习