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 }
View Code

 

posted @ 2020-01-09 10:10  泡个馒头  阅读(229)  评论(0编辑  收藏  举报