练习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 待做