C语言入门——《明解C语言》入门篇第四章练习

新开C语言专栏整理一下学C的艰苦之路,先从看书+视频开始。

整理了《明解C语言》入门篇第四章练习的“参考答案”,记录一下学习的过程。直接上代码。

  • 练习4-1
int main()
{
	int retry;
	do
	{
		int no;
		printf("请输入一个整数:");
		scanf("%d", &no);
		if (no == 0)
			puts("该整数为0");
		else if (no > 0)
			puts("该整数为正数");
		else
			puts("该整数为负数");
		printf("是否继续,继续请输入0,否则输入其他退出:");
		scanf("%d", &retry);
	} while (retry == 0);
	return 0;
}
  • 练习4-2
int main()
{
	int retry;
	do
	{
		int no;
		printf("请输入一个整数:");
		scanf("%d", &no);
		if (no == 0)
			puts("该整数为0");
		else if (no > 0)
			puts("该整数为正数");
		else
			puts("该整数为负数");
		printf("是否继续,继续请输入0,否则输入其他退出:");
		scanf("%d", &retry);
	} while (retry == 0);
	return 0;
}
  • 练习4-3
int main()
{
	int no;
	printf("请输入一个正整数:");
	scanf("%d", &no);
	int a;
	a = no;
	while (a >= 0)
	{
		printf("%d ", a--);
		no--;
	}
	no--;
	if (no >= 0);
		printf("\n");
	return 0;
}
  • 练习4-4
int main()
{
	int no;
	printf("请输入一个正整数:");
	scanf("%d", &no);
	int a;
	a = no;
	while (a>= 1)
	{
		printf("%d ", a--);
		no--;
	}
	no--;
	do
	{
		printf("\n");
	} while (no >= 0);
	return 0;
}
  • 练习4-5
int main()
{
	int i, no;
	printf("请输入一个正整数:");
	scanf("%d", &no);
	i = 1;
	while (i <= no)
		printf("%d ", i++);
	if (no >= 0)
		printf("\n");
	return 0;
}
  • 练习4-6
int main()
{
	int i, no;
	printf("请输入一个整数:");
	scanf("%d", &no);
	i = 2;
	while (i <= no)
	{
		printf("%d ", i);
		i += 2;
	}

	if(no>=0)
		printf("\n");
	return 0;
}
  • 练习4-7
int main()
{
	int i, no;
	printf("请输入一个整数:");
	scanf("%d", &no);
	i = 2;
	while (i <= no)
	{
		printf("%d ", i);
		i *= 2;
	}

	if(no>=0)
		printf("\n");
	return 0;
}
  • 练习4-8
int main()
{
	int a,no;
	printf("正整数:");
	scanf("%d", &no);
	a = no;
	while (no-- > 0)
		putchar('*');
	if (a>1)
		putchar('\n');
	return 0;
}
  • 练习4-9
int main()
{
	int a;
	int i=0;
	printf("正整数:");
	scanf("%d", &a);
	while (i < a - 1)
	{
		putchar('+');
		i++;
		putchar('-');
		i++;
	} 
	if(i
  • 练习4-10
int main()
{
	int a;
	int i=0;
	printf("正整数:");
		scanf("%d", &a);
		while (i 
  • 练习4-11
int main()
{
	int no;
	do{
		printf("请输入一个正整数:");
		scanf("%d", &no);
		printf("%d逆向显示的结果是:", no);
		if (no <= 0)
			puts("\n请不要输入非正整数。");
	} while (no <= 0);
		
		while (no > 0) {
			printf("%d", no % 10);
			no /= 10;
	}
		puts("。");
		return 0;
}
  • 练习4-12
int main()
{	int no;
	int i=0;
	do{
		printf("请输入一个正整数:");
		scanf("%d", &no);
		printf("%d的位数是:",no);
		if (no <= 0)
			puts("\n请不要输入非正整数。");
	} while (no <= 0);
	while (no > 0)
	{
		no /= 10;
		i++;
	}
	printf("%d。", i);
 return 0;
}
  • 练习4-13
int main()
{
	int n;
	int i;
	int sum=0;
	printf("n的值:");
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		sum += i;
	}
	printf("1到%d的和为%d", n, sum);
	return 0;
}
  • 练习4-14
int main()
{
	int n;
	int i=1;
	int j;
	printf("请输入一个整数:");
	scanf("%d", &n);
	for (j = 1; j <= 25; j++)
	{
		printf("%d", i);
		i++;
		while (i == 10)
		{
			i = 0;
		}
	}
	return 0;
}
  • 练习4-15
int main()
{
	int a;
	int b;
	int c;
	int i=0;
	int j;
	printf("开始数值(cm):");
	scanf("%d", &a);
	printf("结束数值(cm):");
	scanf("%d", &b);
	printf("间隔数值(cm):");
	scanf("%d", &c);
	for (i = a; i <= b; i += c)
	{
		j = (i - 100) * 0.9;
		printf("%dcm    %dkg\n", i, j);
	}
	return 0;
//标准体重=(身高-100)*0.9
}
  • 练习4-16
int main()
{
	int n;
	int i=0;
	printf("整数值:");
	scanf("%d", &n);
	for (i = 1; i <= n; i+=2)
		printf("%d ", i);
	return 0;
}
  • 练习4-17
int main()
{
	int n;
	int i;
	int j = 0;
	printf("n的值:");
		scanf("%d", &n);
		for (i = 1; i <= n; i++)
		{
			j = i * i;
			printf("%d的二次方是:%d\n", i, j);
		}
 return 0;
}
  • 练习4-18
int main()
{
	int n;
	int i;
	printf("显示多少个*:");
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		printf("*");
		if (i % 5 == 0)
			printf("\n");
	}
	return 0;
}
  • 练习4-19
int main()
{
	int i, n;
	int j=0;
	printf("整数值:");
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		
		if (n % i == 0)
		{
			printf("%d", i);
			putchar('\n');
			j++;
		}
	}
	printf("约数有%d个", j);
	return 0;
}
//%3d输出数值至少为3位
  • 练习4-20
int main()
{
	int i;
	int j=0;
	printf("  |");
	printf("  1  2  3  4  5  6  7  8  9\n" );
	printf("-------------------------------\n");
	for (i = 1; i <= 9; i++)
	{
		printf("%d |", i);
		for (j = 1; j <= 9; j++)
			printf("%3d", i * j);
		putchar('\n');
	}
	return 0;
}
  • 练习4-21
int main()
{
	int i;
	int n;
	printf("生成一个正方形\n");
	printf("正方形有几层:");
	scanf("%d", &n);
	for (i = 1; i <= n*n; i++)
	{
		putchar('*');
		if (i % n == 0)
			putchar('\n');
	}
	return 0;
}
  • 练习4-22
int main()
{
	int i;
	int j;
	int a;
	int b;
	int tmp;
	puts("让我们来画一个长方形。");
	printf("一边:"); scanf("%d", &a);
	printf("另一边:"); scanf("%d", &b);
	if (a > b)
	{
		tmp = a;
		a = b;
		b = tmp;//使得b始终大于a
	}
	for (i = 1; i <= a; i++)
	{
		for (j = 1; j <= b; j++)
			putchar('*');
		putchar('\n');
	}
	return 0;
}
  • 练习4-23
int main()
{
	int i;
	int j;
	int len;
	puts("生成直角在左上方的等腰直角三角形");
	printf("短边:");
	scanf("%d", &len);
	for (i = 1; i <=len; i++)
	{
		for (j = 1; j<=len-i+1;j++)
			putchar('*');
		putchar('\n');
	}
	return 0;
}
int main()
{
	int i=0;
	int j;
	int len;
	puts("生成直角在右上方的等腰直角三角形");
	printf("短边:");
		scanf("%d", &len);
	for(i=1;i<=len;i++)
	{
		for (j = 1; j < i; j++)
			putchar(' ');
		for (j = 1; j <= len - i + 1; j++)
			putchar('*');
		putchar('\n');
	}
	return 0;
}
  • 练习4-24
int main()
{
	int i;
	int j;
	int len;
	printf("让我们来画一个金字塔。\n");
	printf("金字塔有几层:");
	scanf("%d", &len);
	for (i = 1; i <=len; i++)
	{
		for(j=1;j<=len-i;j++)
			putchar(' ');
		for (j = 1; j <= (i - 1) * 2; j++)
		{
			putchar('*');
		}
		putchar('*');
		putchar('\n');
	}
	return 0;
}
  • 练习4-25
int main()
{
	int i;
	int j;
	int len;
	printf("让我们来画一个向下的金字塔。\n");
	printf("金字塔有几层:");
	scanf("%d", &len);
	for (i = 1; i <= len; i++)
	{
		for (j = 1; j <= i-1; j++)
		{
			putchar(' ');
		}
		for (j = 3; j >= (i-1)*2-1; j--)
			printf("%d", i % 10);
		putchar('\n');
	}
	return 0;
}

你可能感兴趣的:(C语言入门,c语言,开发语言)