while 循环练习
1 /* 2 1.求 1 到 m 间所有奇数的和 3 2.求两个数的最大公约数和最小公倍数 4 3。从键盘循环接收字符串,并统计字母,空格,数字及其他字符的个数,输入回车结束程 5 序。 6 4。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。 7 第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个。 8 到第 10 天刚好剩一个。问猴子第一天摘了多少个桃子? 9 5。打印 9*9 乘法表 10 6。请用 while 循环打印如下图案 11 1 12 2 3 13 4 5 6 14 7 8 9 10 15 11 12 13 14 15 16 7。小芳的妈妈每天给她 2.5 元,她都会存起来,但是每当这一天是存钱的第 5 天时或者 5 的倍数的话, 17 她都会花去 6 元钱。请问,经过多少天小芳才可以存到 100 元。 18 8.使用 while 循环,拼接两个字符串。 19 20 */ 21 22 #include <stdio.h> 23 24 //1.求 1 到 m 间所有奇数的和 25 void jishusum(int m) { 26 int sum=0, i=0; 27 while (i < m) { 28 if (i % 2 != 0) 29 sum += i; 30 i++; 31 } 32 printf("sum=%d\n",sum); 33 } 34 //2.求两个数的最大公约数和最小公倍数 35 void gongbeishu() { 36 37 } 38 //从键盘循环接收字符串,并统计字母,空格,数字及其他字符的个数,输入回车结束程序。 39 void panduan() { 40 int zimu=0, shuzi=0, kongg=0, qita=0; 41 char c; 42 while ((c=getchar())!='\n') { 43 if (c >= 97 && c <= 122 || c >= 65 && c <= 90) { 44 zimu++; 45 } 46 else if (c >= 48 && c <= 57) { 47 shuzi++; 48 } 49 else if (c==32) { 50 kongg++; 51 } 52 else { 53 qita++; 54 } 55 } 56 printf("字母有:%d 数字有:%d 空格有:%d 其他:%d\n",zimu,shuzi,kongg,qita); 57 } 58 //猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。 59 //第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个。 60 //到第 10 天刚好剩一个。问猴子第一天摘了多少个桃子? 61 //x/2+1 62 void houzi() { 63 int num=1; 64 int i =1; 65 while (i<10) { 66 num =1+(num*2+1); 67 i++; 68 } 69 printf("%d",num); 70 } 71 //请用 while 循环打印如下图案 72 /* 73 1 74 2 3 75 4 5 6 76 7 8 9 10 77 11 12 13 14 15 78 */ 79 void printshuzi() { 80 int i = 1, k = 3; 81 //printf("1\n"); 82 while (i <= 15) { 83 if (i ==2 || i == 4 || i == 7||i==11 ) { 84 printf("\n"); 85 } 86 printf("%d ",i); 87 i++; 88 } 89 90 } 91 //使用 while 循环,拼接两个字符串。 92 void pinjie() { 93 char s1[10] = {"woai"}, s2[10]="zhongguo", s[250]; 94 int lens1 = sizeof(s1) / sizeof(char); 95 int lens2 = sizeof(s2) / sizeof(char); 96 //int lens1 = sizeof(s1) / sizeof(char); 97 98 int i = 0,k=0; //s=s1+s2 99 while (i < lens1) { 100 s[i] = s1[i]; 101 if (s1[i] == '\0') { 102 while (k < lens2) { 103 s[i] = s2[k]; 104 k++; 105 i++; 106 } 107 } 108 i++; 109 } 110 } 111 //打印 9*9 乘法表 112 void chengfa() { 113 int i=1, j; 114 while (i <= 9) 115 { 116 j = 1; 117 while (j<=i) { 118 printf("%d*%d=%d ",j,i,i*j); 119 j++; 120 } 121 printf("\n"); 122 i++ ; 123 } 124 } 125 /* 126 小芳的妈妈每天给她 2.5 元,她都会存起来,但是每当这一天是存钱的第 5 天时或者 5 的倍数的话, 127 她都会花去 6 元钱。请问,经过多少天小芳才可以存到 100 元。 128 */ 129 void cunqian() { 130 int money = 0; 131 int day=1; 132 while (money<=100) { 133 money = 2.5*day; 134 if (day >=5 && day % 5 == 0) { 135 money -= 6; 136 } 137 day++; 138 } 139 printf("存到100需要%d天",day); 140 } 141 int main() { 142 chengfa(); 143 //cunqian(); 144 //pinjie(); 145 //printshuzi(); 146 //houzi(); 147 //panduan(); 148 //jishusum(10); 149 system("pause"); 150 return 0; 151 }