明解C语言——入门篇(第三版)第四章练习

练习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;
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
明解C语言入门篇第四章主要介绍了金字塔的练习。其中练习4-24是输入一个整数,然后根据输入的整数层数,画出一个金字塔形状。代码使用了嵌套循环,外层循环控制金字塔的层数,内层循环控制每一层的输出。具体实现是通过在内层循环中打印空格,然后在另一个内层循环中打印星号来实现金字塔形状的输出。 练习4-25是画一个向下的金字塔,也是根据输入的整数层数来绘制金字塔形状。不同于练习4-24,这个金字塔是倒置的,即顶部是最宽的一层,底部是最窄的一层。代码使用了嵌套循环,外层循环控制金字塔的层数,内层循环控制每一层的输出。具体实现是通过在内层循环中打印空格,然后在另一个内层循环中打印数字来实现金字塔形状的输出。 练习4-6是输入一个整数,然后输出从2到输入整数之间的所有偶数。代码使用了while循环,通过判断每个数是否能被2整除来确定是否为偶数,并将偶数打印出来。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [明解C语言入门篇)第四章](https://blog.csdn.net/a237664181a/article/details/88848022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值