练习4-1
判断输入整数的正负,并多次输入输出循环
int main()
{
do
{
int x;
scanf("%d", &x);
if (x > 0)
printf("正数\n", x);
else if (x < 0)
printf("负数\n", x);
else
printf("x为零\n");
} while (1);
return 0;
}
练习4-2
输入两个整数,计算出它们之间所有整数的和
int main()
{
int a, b;
printf("a="); scanf("%d", &a);
printf("b="); scanf("%d", &b);
int min = a > b ? b : a;
int max = a > b ? a : b;
int sum = 0;
for (int i = min; i <= max; i++)
{
sum += i;
}
printf(">=%d&&<=%d的所有整数和为:%d", min, max, sum);
}
练习4-6
输出小于输入整数的所有正偶数
int main()
{
int x, i;
scanf("%d", &x);
i = 2;
while (i < x)
{
printf("%d ", i);
i += 2;
}
return 0;
}
练习4-7
输出小于输入整数的所有2的乘方
#include<math.h>
int main()
{
int x, i,n;
scanf("%d", &x);
n = 2;
i = 1;
while (n < x)
{
printf("%d ", n);
i += 1;
n = pow(2, i);
}
return 0;
}
练习4-9
+ -交替
int main()
{
int x;
int sum = 0;
scanf("%d", &x);
while(++sum <= x)
{
if (sum % 2 == 0)
putchar('-');
else
putchar('+');
}
return 0;
}
练习4-10
int main()
{
int x;
int sum = 0;
scanf("%d", &x);
while (++sum <= x)
{
putchar('*');
putchar('\n');
}
return 0;
}
练习4-12
输出x有几位
int main()
{
int x;
scanf("%d", &x);
int num = 0;
while (x != 0)
{
x = x / 10;
num++;
}
printf("%d", num);
return 0;
}
练习4-13
求1到n的和
int main()
{
int n;
scanf("%d", &n);
int sum = 0;
for (int i = 1; i <= n; i++)
{
sum = sum + i;
}
printf("%d", sum);
return 0;
}
练习4-14
循环显示1234567890,个数为n
int main()
{
int n;
scanf("%d", &n);
int x = 1;
for (int i = 0; i < n; i++)
{
printf("%d", x % 10);
x++;
}
return 0;
}
练习4-18
显示x个‘*’,每五个一换行
int main()
{
int x;
scanf("%d", &x);
for (int i = 1; i <= x; i++)
{
putchar('*');
if (i % 5 == 0)
putchar('\n');
}
return 0;
}
练习4-20
九九乘法表添加横纵标题
int main()
{
int i, j;
int ret;
printf(" ");
for (i = 1; i < 10; i++)
{
printf("%3d", i);
}
printf("\n-------------------------------\n");
for (i = 1; i < 10; i++)
{
printf("%d|", i);
for (j = 1; j < 10; j++)
{
ret = i * j;
printf("%3d", ret);
}
printf("\n");
}
}
练习4-21
显示边长为n的正方形
int main()
{
int n;
printf("请输入:");
scanf("%d", &n);
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
putchar('*');
}
printf("\n");
}
return 0;
}
练习4-22
显示长方形,x、y中较大的为长(列)
int main()
{
int x, y;
printf("输入两个边长:");
scanf("%d %d", &x, &y);
int i, j;
int max = (x > y) ? x : y;
int min = (x > y) ? y : x;
for (i = 0; i<min; i++)
{
for (j = 0; j < max; j++)
{
putchar('*');
}
printf("\n");
}
return 0;
}
练习4-23
直角再左上角的等腰直角三角形
int main()
{
int i, j, len;
printf("左上-边长:");
scanf("%d", &len);
for (i = 0; i < len; i++)
{
for (j = len-i; j > 0; j--)
{
putchar('*');
}
printf("\n");
}
return 0;
}
直角在右上方的等腰直角三角形
int main()
{
int i, j, len;
printf("右上-边长:");
scanf("%d", &len);
for (i = 0; i < len; i++)
{
for (j = 0; j < i; j++)
{
putchar(' ');
}
for (j = len - i; j > 0; j--)
{
putchar('*');
}
printf("\n");
}
return 0;
}
练习4-24
显示n层金字塔
int main()
{
int n;//n层
scanf("%d", &n);
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < (n-1) - i; j++)
putchar(' ');
for (j = 0; j < (2 * i + 1); j++)
putchar('*');
printf("\n");
}
return 0;
}
练习4-25
显示n层倒金字塔
int main()
{
int n;
scanf("%d", &n);
int i, j;
for (i = 1; i <= n; i++)
{
for (j = 0; j < (i - 1); j++)
putchar(' ');
for (j = 2 * (n-i) + 1; j >0; j--)
{
printf("%d", i);
}
printf("\n");
}
return 0;
}