5 数组
5.1 二维数组的初始化
int table[2][3] = {{0, 0, 0}, {1, 1, 1}};
int table[2][3] = {
{0, 0, 0},
{1, 1, 1}
};
//如果数组的所有元素都显示的进行了初始化,
// 那么就不必指定第一个维数的大小
int table[][3] = {
{0, 0, 0},
{1, 1, 1}
};
// 如果在初始化中遗漏了一些元素的值,
// 那么将自动的把这些元素置为零
int table[2][3] = {
{1, 1},
{2}
};
/*如果要把数组的所有元素初始化为零,
可以使用如下方法*/
int table[2][3] = { {0}, {0}};
/*每行的第一个元素显示的初始化为零,
而其他元素则自动的初始化为零*/
int table[2][3] = { 0, 0};
代码示例:
/**
功能:一般50个学生的期末成绩,
统计得分在0~9、10~19,。。,100的学生数
知识点:一维数组初始化
版本:2014/06/19
*/
#include <stdio.h>
#include <stdlib.h>
#define MAXVAL 10
#define COUNTER 11
int main()
{
float value[MAXVAL];
int i, low, high;
int group[COUNTER] = {0};
// int group[COUNTER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
/*初始化group数组*/
// for ( i = 0; i < COUNTER; ++i)
// {
// group[i] = 0;
// }
/*读取学生成绩*/
printf("Enter the score of students:\n");
for ( i = 0; i < MAXVAL; ++i)
{
//读取数值
scanf("%f", &value[i]); //输入校验必须是float类型
//计数
++group[(int) (value[i] + 0.5) / 10];
}
printf("-------------------------------\n");
/*显示出现频率表*/
printf("Group RANGE FREQENCY\n");
for (int i = 0; i < COUNTER; ++i)
{
low = i * 10;
if ( i == 10)
high = 100;
else
high = low + 9;
printf("%3d %7d to %3d %8d\n", i+1, low, high, group[i] );
}
system("pause");
return 0;
}