练习4-1
#include <stdio.h> int main(void) { int no; while (1) { printf("请输入一个整数:"); scanf("%d", &no); if (no == 0) puts("该整数为0。"); else if (no > 0) puts("该整数为正数。"); else puts("该整数为负数。"); } return 0; }
练习4-2
#include <stdio.h> int main(void) { int a,b; int sum = 0; int min; int max; printf("请输入两个整数。\n"); printf("整数a:"); scanf("%d", &a); printf("整数b:"); scanf("%d", &b); min = (a > b) ? b : a; max = (a > b) ? a : b; while (min <= max) { sum += min; min++; } printf("大于等于%d小于等于%d的所有整数的和是%d。\n",min,max,sum); return 0; }
练习4-3
#include <stdio.h> int main(void) { int no; printf("请输入一个正整数:"); scanf("%d", &no); while (no >= 0) { printf("%d ", no); no--; /* no的值递减 */ } if(no==-1||no==0) printf("\n"); /* 换行 */ return 0; }
练习4-4
#include <stdio.h> int main(void) { int no; printf("请输入一个正整数:"); scanf("%d", &no); while (no > 0) printf("%d ", no--); /* no的值在显示之后递减 */ if(no>=0) printf("\n"); /* 换行 */ return 0; }
练习4-5
#include <stdio.h> int main(void) { int i, no; printf("请输入一个正整数:"); scanf("%d", &no); i = 1; while (i <= no) printf("%d ", i++); /* i的值在显示之后递增 */ if(no>=0) printf("\n"); /* 换行 */ return 0; }
练习4-6
#include <stdio.h> int main(void) { int no; int i = 2; printf("请输入一个整数:"); scanf("%d", &no); while (i < no) { printf("%d ", i); i += 2; } printf("\n"); /* 换行 */ return 0; }
练习4-7
#include <stdio.h> int main(void) { int no; int i = 2; printf("请输入一个整数:"); scanf("%d", &no); while (i < no) { printf("%d ", i); i *= 2; } printf("\n"); /* 换行 */ return 0; }
练习4-8
#include <stdio.h> int main(void) { int no; printf("正整数:"); scanf("%d", &no); while (no-- > 0) putchar('*'); if(no == -1)//注意书上 putchar('\n'); return 0; }
练习4-9
#include <stdio.h> int main(void) { int no; printf("正整数:"); scanf("%d",&no); while (no--) { if (no % 2) putchar('-'); else putchar('+'); } printf("\n"); return 0; }
练习4-10
#include <stdio.h> int main(void) { int no; printf("正整数:"); scanf("%d",&no); while (no--) { printf("*\n"); } return 0; }
练习4-11
#include <stdio.h> int main(void) { int no; printf("请输入一个正整数:"); scanf("%d",&no); while (no!=0) { printf("%d",no%10); no /= 10; } return 0; }
练习4-12
#include <stdio.h> int main(void) { int no; int i=0; int no1; printf("请输入一个正整数:"); scanf("%d",&no); no1 = no; while (no!=0) { no /= 10; i++; } printf("%d的位数是%d\n",no1,i); return 0; }
练习4-13
#include <stdio.h> int main(void) { int n; int sum = 0; printf("n的值:"); scanf("%d",&n); int n1 = n; while (n>0) { sum += n; n--; } printf("1到%d的和是%d\n",n1,sum); return 0; }
练习4-14
#include <stdio.h> int main(void) { int n; int i = 1; printf("请输入一个整数:"); scanf("%d",&n); while (i<=n) { printf("%d", i % 10); i++; } printf("\n"); return 0; }
练习4-15
#include <stdio.h> int main(void) { int sv; int ev; int gv; printf("开始数值(cm):"); scanf("%d",&sv); printf("结束数值(cm):"); scanf("%d", &ev); printf("间隔数值(cm):"); scanf("%d", &gv); while (sv<=ev) { printf("%dcm %.2fkg\n", sv,0.9*(sv-100)); sv += gv; } printf("\n"); return 0; }
练习4-16
#include <stdio.h> int main(void) { int no; int i = 1; printf("整数值:"); scanf("%d", &no); while (i < no) { printf("%d ", i); i += 2; } printf("\n"); /* 换行 */ return 0; }
练习4-17
#include <stdio.h> int main(void) { int n; int i = 1; printf("n的值:"); scanf("%d", &n); while (i <= n) { printf("%d的二次方是%d\n",i,i*i); i++; } return 0; }
练习4-18
#include <stdio.h> int main(void) { int n; int i = 0; printf("显示多少个*:"); scanf("%d", &n); while (i < n) { if ((i % 5 != 0)||(i==0)) putchar('*'); else printf("\n*"); i++; } printf("\n"); return 0; }
练习4-19
#include <stdio.h> int main(void) { int n; int i = 1; int yueshu = 0; printf("整数值:"); scanf("%d", &n); while (i <= n) { if ((n%i) == 0) { printf("%d\n",i); yueshu++; } i++; } printf("约数有%d个。\n",yueshu); return 0; }
练习4-20 待做
练习4-21
#include <stdio.h> int main(void) { int n; int i; int j; printf("生成一个正方形"); printf("正方形有几层:"); scanf("%d",&n); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) printf("*"); printf("\n"); } return 0; }
练习4-22
#include <stdio.h> int main(void) { int i, j; int height, width; int tmp; puts("让我们来画一个长方形。"); printf("一边:"); scanf("%d", &height); printf("另一边:"); scanf("%d", &width); if (height > width) { tmp = height; height = width; width = tmp; } for (i = 1; i <= height; i++) { /* 长方形有height行 */ for (j = 1; j <= width; j++) /* 显示width 个'*'* */ putchar('*'); putchar('\n'); /* 换行 */ } return 0; }
练习4-23-1
#include <stdio.h> int main(void) { int i, j, len; puts("生成直角在左上方的等腰直角三角形。"); printf("短边:"); scanf("%d", &len); for (i = 1; i <= len; i++) { /* i 行(i = 1, 2, --- , len) */ for (j = 1; j <= len+1-i; j++) /* 每行显示i 个'*' */ putchar('*'); putchar('\n'); /* 换行 */ } return 0; }
练习4-23-2
#include <stdio.h> int main(void) { int i, j, len; puts("生成直角在右上方的等腰直角三角形。"); printf("短边:"); scanf("%d", &len); for (i = 1; i <= len; i++) { for (j = 1; j < i; j++) /* 每行显示len-i 个' ' */ putchar(' '); for (j = 1; j <= len + 1 - i; j++) /* 每行显示i 个'*' */ putchar('*'); putchar('\n'); /* 换行 */ } return 0; }
练习4-24 待做
练习4-25 待做