明解C语言 入门篇练习题代码(第五章)

从0开始的C语言学习:)
第一章很简单所以略0.0

第二章 运算和数据类型


2-1 运算

练习2-1

显示出前者是后者的百分之几:

#include <stdio.h>

int main(void)
{
	int vx,vy;
	puts("请输入两个整数。");
	printf("整数a、整数b:\n");   scanf_s("%d%d", &vx,&vy );
	printf("a是b的%d%%。\n",100*vx/vy);
	
	return 0;
}

练习2-2

读取两个整数然后输出它们的和,积:

#include <stdio.h>

int main(void)
{
	int x, y;
	puts("please input two integer:");  scanf_s("%d%d", &x, &y);
	printf("sum=%d multiply=%d",x+y,x*y);
	return 0;
}

2-2 数据类型

练习2-3

读出两个实数的值:

#include <stdio.h>

int main(void)
{
	double x;
	double y;

	puts("please put x,y:");
	printf("double x:");  scanf_s("%lf", &x);
	printf("double y:");  scanf_s("%lf", &y);

	printf("%f\n%f",x,y);
	return 0;
}

练习2-4

对整型常量、浮点型常量、int型变量和double型变量进行乘除等各种运算:

#include <stdio.h>

int main(void)
{
	int n1, n2, n3, n4;
	double d1, d2, d3, d4;
	int x;
	double y;

	puts("please input x,y:");
	printf("int x:");  scanf_s("%d",&x);
	printf("double y:");  scanf_s("%lf",&y);
	printf("division x=%d multiply x=%d\n", x / 2,x*2);
	printf("division y=%f multiply y=%f\n\n", y / 2.0,y*2.0);

	n1 = 5 / 2;
	n2 = 5.0 / 2.0;
	n3 = 5.0 / 2;
	n4 = 5 / 2.0;

	d1 = 5 / 2;
	d2 = 5.0 / 2.0;
	d3 = 5.0 / 2;
	d4 = 5 / 2.0;

	printf("n1=%d\n", n1);
	printf("n2=%d\n", n2);
	printf("n3=%d\n", n3);
	printf("n4=%d\n\n", n4);

	printf("d1=%f\n", d1 );
	printf("d2=%f\n", d2);
	printf("d3=%f\n", d3);
	printf("d4=%f\n", d4);

	return 0;
}

练习2-5

计算前者是后者的百分之几,并用实数输出结果:

#include <stdio.h>

int main(void)
{
	int x, y;

	puts("please input two integer:");
	printf(" x:"); scanf_s("%d", &x);
	printf(" y:"); scanf_s("%d", &y);

	printf("x的值是y的%f %%。\n",(double)(100*x/ y));

	return 0;
}

练习2-6

读取表示身高的整数值,显示出标准体重的实数值。标准体重根据公式(身高-100)*0.9进行计算,所得结果保留一位小数:

#include <stdio.h>

int main(void)
{
	double h;
	printf("please input your height;");  scanf_s("%lf", &h);
	printf("your standard weight is :%.1f kg", (h - 100) * 0.9);

	return 0;
}

第三章 分支结构程序

3-1 if语句

练习3-1

输入两个整数,如果后者是前者的约数,则显示b是a的约数;如果不是,则显示b不是a的约数:

#include <stdio.h>

int main(void)
{
	int a, b;
	puts("please input two integer:");
	printf(" a:");  scanf_s("%d", &a);
	printf(" b:");  scanf_s("%d", &b);
	
	if (a % b)
		puts("b不是a的约数");
	    else
		puts("b是a的约数");
		
		return 0;
}

练习3-3

输入一个整数值,显示出它的绝对值:

#include <stdio.h>

int main(void)
{
	int x;
	printf("input an integer:");  scanf_s("%d", &x);

	if (x >= 0)
		printf("x的绝对值是%d",x);
		else
		printf("x的绝对值是%d",x=-x);

	return 0;
}

练习3-4

输入两个整数,显示它们之间的大小关系:

#include <stdio.h>

int main(void)
{
	int x,y;

	puts("input an integer:");
	printf(" x:");  scanf_s("%d", &x);
	printf(" y:");  scanf_s("%d", &y);

	if (x == y)
		puts("x equal y");
	else
		if (x > y)
			puts("x>y");
		else
			puts("x<y");

	return 0;
}

练习3-5

确认相等运算符和关系运算符的运算结果是1和0:

#include<stdio.h>

int main(void)
{
    int a, b, c, d, e, f, x1, x2;

    puts("please input two integer:");
    printf(" x:");   scanf_s("%d", &x1);
    printf(" y:");   scanf_s("%d", &x2);

    a = (x1 == x2);
    b = (x1 != x2);
    c = (x1 <= x2);
    d = (x1 >= x2);
    e = (x1 > x2);
    f = (x1 < x2);
    printf("%d %d %d %d %d %d", a, b, c, d, e, f);

    return 0;
}

练习3-6

计算输入的三个整数中的最小值,并显示 :

#include<stdio.h>

int main(void)
{
	int a, b, c,min;
    printf("please input 3 integer:\n");
    scanf_s("%d %d %d", &a, &b, &c);

	min = a;
	if (b < min) min = b;
	if (c < min) min = c;
		
	printf("the minimum one is %d.\n", min);

	return 0;
}

练习3-7

计算输入的四个整数中的最大值并显示 :

#include<stdio.h>

int main(void)
{
	int a, b,c,d,max;

	printf("please input 4 integer:\n");
	scanf_s("%d %d %d %d", &a, &b, &c, &d);
	
	max = a;
	if (b > max) max = b;
	if (c > max) max = c;
	if (d > max) max = d;

	printf("the biggest one is %d", max);

	return 0;
}

练习3-8

使用if语句计算输入的两个运算符的差值 :

#include<stdio.h>

int main(void)
{
	int a, b;

	printf("please input 2 integer:");
	scanf_s("%d%d", &a, &b);

	if (a > b)
		printf("the deviation is %d", a - b);
	else
		printf("the deviation is %d", b - a);

	return 0;
}

练习3-9

使用条件运算符,计算输入的三个整数中的最小值 :

#include<stdio.h>

int main(void)
{
	int a, b, c, min;
	printf("please input 3 integer:\n");
	scanf_s("%d %d %d", &a, &b, &c);

	min = (b < a) ? b : a;
	min = (c < min) ? c : min;

	printf("the minimum one is %d.\n", min);

	return 0;
}

练习3-10

输入三个数,显示有几个相等,否则显示三个值各不相等 :

#include<stdio.h>

int main(void)
{
	int a,b,c;
	puts("请输入三个整数:");
	scanf_s("%d%d%d", &a, &b, &c);
		
	if(a==b&&b==c)	
	printf("三个值都相等");
	else if(a==b||b==c||a==c)
	printf("有两个值相等");
	else 
	printf("三个值都不相等");
	
	return 0;
}

练习3-11

输入两个整数,如果它们的差值小于10,则显示它们的差值小于10;否则,显示它们的差值大于11。 :

#include <stdio.h>

int main(void)
{
	int x, y;
	printf("please input 2 integer:");
	scanf_s("%d%d", &x, &y);

	if ((x - y) >= 11 || (y - x )>= 11)
		printf("它们的差大于11");
	else
		printf("它们的差小于10");

	return 0;
}

3-2 switch语句

练习3-12

用Switch语句实现判断输入的整数值是奇数还是偶数:

#include <stdio.h>

int main(void)
{
	int n;
	printf("n:");
	scanf_s("%d", &n);

	switch (n % 2) {
	case 0:printf("是偶数"); break;
	default:printf("是奇数"); break;
	}
	return 0;
}

练习3-13

用Switch语句实现显示输入的月份所在的季节:

#include <stdio.h>

int main(void)
{
	int month;
	printf("input a month:");
	scanf_s("%d", &month);

	switch (month) {
	case 3:case 4:case 5:printf("%d is spring", month); break;
	case 6:case 7:case 8:printf("%d is summer", month); break;
	case 9:case 10:case 11:printf("%d is autumn", month); break;
	case 12:case 1:case 2:printf("%d is winter", month); break;
	}
	return 0;
}

第四章 程序的循环控制

4-1 do语句

练习4-1

输入一个整数,判断该整数的符号,并循环任意次:

#include <stdio.h>

int main(void)
{
	int retry;
	do {
		int no;
		printf("input n:");
		scanf_s("%d", &no);

		if (no == 0)
			puts("n=0");
		else if (no > 0)
			puts("n>0");
		else
			puts("n<0");

		printf("again?[yes0/no]:");
		scanf_s("%d", &retry);
	} while (retry == 0);
		return 0;
}

练习4-2

读取两个整数的值,然后计算出它们之间的所有整数的和:

#include <stdio.h>

int main(void)
{
	int a, b, n;                     /*从键盘输入两个整数a,b;用n存放第一个值*/
	int sum = 0;                     /*所有数之和sum初始化为0*/

	printf("请输入两个整数:\n");
	scanf_s("%d%d", &a, &b);
                                    /*因为a、b的大小不同,求和有两种顺序*/
		if (a < b) {              
			n = a;                 /*如果a<b,则将a的值赋给n,并进行累加求和*/
			do { 
				sum = sum + n;     /*可以想象,每次循环中n+1*/
				n++;               /*遇到第一次条件时,sum=a,n=a+1,n即为下次要加上的数...*/
			} while (n<=b);        /*a与b之间的和,相当于b-n+1个整数相加,需进行b-n个条件循环,即n=b+1时打破循环条件*/
			printf("sum is %d", sum);
		}                          /*例如2,6之间有5个数相加,需要进行4次循环,在n=7时打破循环条件n<=6,跳出循环*/
		
		else if (a > b) {
			n = b;
			do {
				sum = sum + n;
				n++;
			} while (n<=a);
			printf("sum is %d", sum);
		}
	return 0;
}

4-2 while语句

练习4-3

从输入的整数开始倒数到0,并输出,且当输入值为负数时不换行:

#include <stdio.h>

int main(void)
{
	int no;
	printf("no:");
	scanf_s("%d", &no);
	
	while (no >= 0) {
		printf(" %d", no);
		no--;
	}
	while (no >= 0) {
		printf("\n");
	}
	return 0;
}

练习4-4

从输入整数开始倒数到1,并显示,且当输入的值小于0时不换行:

#include <stdio.h>

int main(void)
{
	int no;
	printf("请输入一个正整数: ");
	scanf_s("%d", &no);

	while ( no > 0) {
		printf("%d ", no--);
	}
	if (no == 0)
		printf("\n");
	return 0;
}

练习4-5

递增显示从1到输入的正整数为止的各个整数,并且当输入的值小于0的时候不换行:

#include <stdio.h>

int main(void)
{
	int no;
	int i = 1;

	printf("input n:");
	scanf_s("%d", &no);

	while (i <= no) {
		printf("%d ", i++);
	}
	if (no >= 0)
		printf("\n");

	return 0;
}

练习4-6

升序显示出小于输入值的所有正偶数:

#include <stdio.h>

int main(void)
{
	int no;
	int i = 2;

	printf("input n:");
	scanf_s("%d", &no);

	while (i <= no) {
		printf("%d ", i++);
		i++;
	}
		printf("\n");
	return 0;
}

练习4-7

升序显示出小于输入的整数的所有2的乘方:

#include <stdio.h>

int main(void)
{
	int no;
	int i = 2;

	printf("input n:");
	scanf_s("%d", &no);

	while (i <= no) {
		printf("%d ", i);
		i *= 2;
	}
	return 0;
}

练习4-8

输入一个整数,连续输出该整数个*,当输入的值小于1时不输出换行符:

#include <stdio.h>
int main(void)
{
	int no;
	int i;
	printf("input n:");
	scanf_s("%d", &no);

	i = no;

	while (i-- > 0) {
		putchar('*');
	}
	if (no > 0)
		putchar('\n');
	return 0;
}

练习4-9

:交替显示+和-,总个数等于所输入的整数值,另外当输入小于0的整数时,则什么都不显示。

#include<stdio.h>
int main(void)
{
	int num;
	int i = 0;

	printf("正整数:");
	scanf_s("%d", &num);

	do {
		++i;
		if (i % 2 == 0)
			putchar("-");
		else
			putchar("+");
	} while (i<num);

	return 0;
}

练习4-10

:连续显示*,总个数等于所有输入的整数值。另外,当输入小于0的整数时什么都不显示。

#include <stdio.h>
int main(void)
{
    int num;
    int i = 0;

    printf("正整数:");
    scanf("%d",&num);

    while (i++ < num){
        printf("*\n");
    }
    return 0;
}

练习4-11

:输入一个非负整数,并逆向显示。

#include<stdio.h>
int main(void)
{
	int i;

	do {
		printf("请输入一个正整数:");
		scanf_s("%d", &i);
		if (i <= 0) {
			puts("请不要输入非正整数。");
		}
	} while (i <= 0);

	printf("%d逆向显示结果是:",i);
	while (i > 0) {
		printf("%d", i % 10);
			i /= 10;
	}
	puts("。");

	return 0;

}

练习4-12

:读取一个正整数,并显示其位数。

#include<stdio.h>
int main(void)
{
	int n;
	int i = 0;;

	do {
		printf("please input n:");
		scanf_s("%d", &n);
		if (n <= 0)
			printf("try again:");
	} while (n <= 0);
	
	printf("%d bits are :",n);
	while (n > 0) {
		n /= 10;
		i++;
	}
	printf("%d", i);
	
	return 0;
}

4-3 for语句

练习4-13

:键入n的值,求1到n的和

#include<stdio.h>
int main(void)
{
	int i = 0;
	int sum = 0;
	int n;

	printf("输入n:");
	scanf_s("%d", &n);

	for (i = 1;i <= n;i++) {
		sum += i;
	}
	printf("从1到n的和:%d\n", sum);

	return 0;
}

练习4-14

:输入一个整数,循环显示1234567890,显示的位数和输入的整数值相同。

#include <stdio.h>
int main(void)
{
    int n, i;

    printf("请输入一个整数:");
    scanf_s("%d", &n);

    for (i = 1;i <= n;i++)
    {
        printf("%d", i % 10);
    }

    return 0;
}

练习4-15

显示身高和标准体重的对照表,显示的身高范围和间隔由输入的整数控制,标准体重精确到小数点后两位。

#include <stdio.h>
int main(void)
{
	int h1, h2;
	int i;
	double weight;

	printf("开始数值:");scanf_s("%d", &h1);
	printf("结束数值:");scanf_s("%d", &h2);
	printf("间隔数值:");scanf_s("%d", &i);

	for (;h1 <= h2;h1 += i) {
		weight = (h1 - 100) * 0.9;
		printf("%dcm    %.2fkg\n", h1, weight);
	}
	return 0;
}

练习4-16

输入一个整数,显示小于等于该整数的所有奇数。

#include<stdio.h>
int main(void)
{
	int n;

	printf("请输入一个整数:");
	scanf_s("%d", &n);

	for (int i = 1;i <= n;i++) {
		if (i % 2 == 1)
			printf("%d  ", i);
	}
	return 0;
}

练习4-17

输入一个整数,显示1到n的整数的二次方。

#include<stdio.h>
int main(void)
{
	int n;
	
	printf("请输入一个整数:");
	scanf_s("%d", &n);

	for (int i = 1;i <= n;i++) {
			printf("%d 的二次方是 %d\n", i,i*i);
	}
	return 0;
}

练习4-18

输入一个整数值,显示该整数值个*,每显示五个就换行。

#include<stdio.h>
int main(void)
{
	int n;
	int i;

	printf("请输入一个整数:");
	scanf_s("%d", &n);

	for (i = 1;i <= n;i++) {
		putchar('*');
		if (i % 5 == 0) {
			printf("\n");
		}
	}
	return 0;
}

练习4-19

输入一个整数,显示其所有约数,及约数的个数。

#include<stdio.h>
int main(void)
{
	int n, i;
	int sum = 0;

	printf("整数值:");
	scanf_s("%d", &n);

	for (i = 1;i <= n;i++) {
		if (n % i == 0) {
			printf("%d\n", i);
			sum++;
		}
	}
	printf("约数有%d个。", sum);
	return 0;
}

4-4 多重循环

练习4-20

为九九乘法表添加横纵标题。

#include<stdio.h>
int main(void)
{
	int i, j;

	printf("    |");

	for (int a = 1;a <= 9;a++) {
		printf("%3d",a);
	}
	putchar('\n');
	printf("---------------------------------\n");

	for (i = 1;i <= 9;i++) {
		printf("%2d  |", i);
		for (j = 1;j <= 9;j++)
			printf("%3d", i * j);
		putchar('\n');
	}
	return 0;
}

练习4-21

显示以所输入的整数为边长的正方形

#include<stdio.h>
int main(void)
{
	int i, j;
	int n;

	printf("how long?");
	scanf_s("%d", &n);

	for (i = 1;i <= n;i++) {
		for (j = 1;j <= n;j++)
			putchar('*');
		putchar('\n');
	}
	return 0;
}

练习4-22

画一个长方形,总使较短的边作为高。

#include<stdio.h>
int main(void)
{
	int i, j;
	int n1, n2, n;
	printf("input n1,n2:\n");
	scanf_s("%d%d", &n1, &n2);

	if (n1 > n2) {//比较n1和n2的大小
		n = n1;//复制n1中的值到n中
		n1 = n2;//将n2的值赋给n1
		n2 = n;//将n1的值赋给n2
	}
	for (i = 1;i <= n1;i++) {
		for (j = 1;j <= n2;j++)
			putchar('*');
		putchar('\n');
	}
	return 0;
}

练习4-23

显示等腰直角三角形在左上方和右上方的图像。

#include<stdio.h>//左上三角形
int main(void)
{
	int i, j;
	int len;

	puts("shorts len:");
	scanf_s("%d", &len);

	for (i = len;i >= 1;i--) {
		for (j = 1;j <= i;j++)
			putchar('*');
		putchar('\n');
	}
	return 0;
}

#include<stdio.h>//右上三角形
int main(void)
{
	int i, j;
	int len;

	puts("shorts len:");
	scanf_s("%d", &len);

	for (i = len;i >= 1;i--) {
		for (j = 1;j <= len - i;j++)
			putchar(' ');
		for (j = 1;j <= i;j++)
			putchar('*');
		putchar('\n');
	}
	return 0;
}

练习4-24

输入一个整数,显示出输入整数层的金字塔图像。

#include <stdio.h>

int main()
{
    int blank, star;
    int l,j;//长度l用来控制行数j循环次数,i和j共同控制blank和star(输出字符)的循环
    
    puts("让我们来画一个金字塔。");
    printf("金字塔有几层:");
    scanf("%d",&l);

    for (j = 1;j <= l;j ++)//j表示第几次循环,表示输出三角形第几层的图案
    {
        for (blank = 1;blank <= l - j;blank ++)//表示第j层中应先输出多少空格
        {
            putchar(' ');
        }
        for (star = 1;star <= (j - 1) * 2 + 1;star ++)//表示第j层中应再输出多少*
        {
            putchar('*');
        }
        putchar('\n');
    }
    return 0;
}

练习4-25

显示输入整数层的向下的金字塔形状,第i行显示i%10的结果。

#include <stdio.h>

int main()
{
    int blank, star;
    int j,i;

    puts("让我们来画一个金字塔。");
    printf("金字塔有几层:");
    scanf("%d",&i);

    for (j = 1;j <= i;j ++)//与上一题类似,j从1递增
    {
        for (blank = 1;blank <= j - 1;blank ++)//每次for循环递增输出j-1个空格
        {
            putchar(' ');
        }
        for (star = 1;star <= (i - j) * 2 + 1;star ++)//每次for循环递减输出*
        {
            printf("%d",j % 10);//显示输出的整数为层数
        }
        putchar('\n');
    }
    
    return 0;
}


第五章 数组

5-1 数组

练习5-1

依次将数组中的元素赋值为01234。

#include<stdio.h>
int main(void)
{
	int i;
	int x[5];

	for (i = 0;i < 5;i++) {
		x[i] = i;
	}
	for (i = 0;i < 5;i++) {
		printf("x[%d]=%d\n", i, x[i]);
	}
	return 0;
}

练习5-2

依次将数组中的元素赋值为54321。

#include<stdio.h>
int main(void)
{
	int i;
	int x[5];

	for (i = 0;i < 5;i++) {
		x[i] = 5-i;
	}
	for (i = 0;i < 5;i++) {
		printf("x[%d]=%d\n", i, x[i]);
	}
	return 0;
}

练习5-3

依次用54321将数组初始化。

#include<stdio.h>
int main(void)
{
	int a[5] = { 5,4,3,2,1 };
	int i;
	
	for (i = 0;i < 5;i++)
		printf("a[%d]=%d\n",i, a[i]);

	return 0;
}

练习5-4

将数组a中的元素按倒序复制到数组b中。

#include<stdio.h>
int main(void)
{
	int a[5] = { 17,23,36 };
	int b[5];
	int i;
	
	for (i = 0;i < 5;i++)
		b[4 - i] = a[i];
		
	puts("   a   b");
	puts("----------");
	for (i = 0;i < 5;i++)
		printf("%4d%4d\n", a[i], b[i]);

	return 0;
}

练习5-5

将数组中的元素倒序排列,改用对象式宏来定义元素个数。

#include<stdio.h>
#define NUMBER 7
int main(void)
{
	int i;
	int x[NUMBER];

	for (i = 0;i < NUMBER;i++) {
		printf("x[%d]:", i );
		scanf_s("%d", &x[i]);
	}
	for (i = 0;i < 3;i++) {
		int temp = x[i];
		x[i] = x[6 - i];
		x[6 - i] = temp;
	}
	puts("倒序排列:");
	for (i = 0;i < NUMBER;i++)
		printf("x[%d]=%d\n", i, x[i]);
	return 0;
}

练习5-6

假设变量a是double型,变量b是int型,请说明经过以下赋值后a和b的值分别是多少。
a=b=1.5;

#include<stdio.h>
int main(void)
{
	double a;
	int b;

	a = b = 1.5;//赋值表达式的判定结果,和赋值后的左操作数的类型和值相同。

	printf("a的值为:%d\n", a);//a的值为0
	printf("b的值为:%d", b);//b的值为1
	return 0;
}

练习5-7

读取数组中的数据个数和元素值并显示。显示时,各值之间用逗号和空格分隔,并用大括号{}将所有值括起来。

#include<stdio.h>
#define NUMBER 80
int main(void)
{
	int x[NUMBER];
	int i;
	int num;

	printf("数据个数:");
	scanf_s("%d", &num);
	for (i = 0;i < num;i++) {
		printf("%d号:", i + 1);
		scanf_s("%d", &x[i]);
	}
	printf("{");
	for (i = 0; i < num - 1; i++)
	{
		printf("%d, ", x[i]);
	}
	printf("%d", x[num-1]);
	printf("}");
	return 0;
}

练习5-8

输入学生的分布,并从小到大显示出分数的分布情况。

#include<stdio.h>
#define NUMBER 80

int main(void)
{
	int i, j;
	int num;
	int tensu[NUMBER];
	int bunpu[11] = { 0 };

	printf("请输入学生的人数:");

	do {
		scanf_s("%d", &num);
		if (num<1 || num>NUMBER)
			printf("\a请重新输入1~%d的数:", NUMBER);
	} while (num<1 || num>NUMBER);

	printf("请输入%d人的分数。\n", num);

	for (i = 0;i < num;i++) {
		printf("%2d号:", i + 1);
		do {
			scanf_s("%d", &tensu[i]);
			if (tensu[i] < 0 || tensu[i]>100)
				printf("请输入1~100的数:");
		} while (tensu[i] < 0 || tensu[i]>100);
		bunpu[tensu[i] / 10]++;
	}
	puts("\n----分布图----");

	for (i = 0;i <= 9;i++) {
		printf("%3d-%3d:", i * 10, i * 10 + 9);
		for (j = 0;j < bunpu[i];j++)
			putchar('*');
		putchar('\n');
	}
	printf("    100:");
	for (j = 0;j < bunpu[10];j++)
		putchar('*');
	putchar('\n');

	return 0;
}

练习5-9

输入学生的分布,并用纵向分布图从小到大显示出分数的分布情况。(做法是参考网上的,已注释。)

#include<stdio.h>
#define NUMBER 80

int main(void)
{
	int i, j;
	int num;
	int tensu[NUMBER];
	int bunpu[11] = { 0 };

	printf("请输入学生的人数:");

	do {
		scanf_s("%d", &num);
		if (num<1 || num>NUMBER)
			printf("\a请重新输入1~%d的数:", NUMBER);
	} while (num<1 || num>NUMBER);

	printf("请输入%d人的分数。\n", num);

	for (i = 0;i < num;i++) {
		printf("%2d号:", i + 1);
		do {
			scanf_s("%d", &tensu[i]);
			if (tensu[i] < 0 || tensu[i]>100)
				printf("请输入1~100的数:");
		} while (tensu[i] < 0 || tensu[i]>100);
		bunpu[tensu[i] / 10]++;
	}

	int max;//确定分布图中*的位置
	max = bunpu[0];
	for (i = 1;i <= 11;i++) {
		if (bunpu[i] > max) max = bunpu[i];//找到最多分布的数组bunpu[]
	}
	for (;max > 0;max--) {//max递减到0
		for (j = 0; j < 11; j++)//从max最大时开始遍历数组bunpu,max每递减一次,遍历一次。
		{
			if (bunpu[j] >= max)//判断数组元素个数是否小于当前max值
				printf("   *");
			else
				printf("    ");//小于当前max时输出空格
		}
		putchar('\n');
	}
	putchar('\n');
	printf("---------------------------------------------------");
	putchar('\n');
	for (i = 0; i < 11; i++)
	{
		printf("%4d", i * 10);
	}
	putchar('\n');
	return 0;
}

版权声明:本文为qq_45711755原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。