企业微网站怎么建设,广西网站建设方案,嘉定网站制作,网站推广 优帮云1.6 C语言之数组概述 一、数组二、练习 一、数组
所谓数组#xff0c;就是内存中一片连续的空间#xff0c;可以用来存储一组同类型的数据 数组有下标#xff0c;从0开始#xff0c;可以理解为是给数组中的元素编号#xff0c;便于后续寻址访问 我们来编写一个程序… 1.6 C语言之数组概述 一、数组二、练习 一、数组
所谓数组就是内存中一片连续的空间可以用来存储一组同类型的数据 数组有下标从0开始可以理解为是给数组中的元素编号便于后续寻址访问 我们来编写一个程序统计所有输入中0-9这几个数字出现的次数 先定义一个数组数组总共有10个元素用于存放0-9的出现次数而0-9可以使用数组的下标表示
#include stdio.h// 编写一个程序统计所有输入中0-9这几个数字出现的次数
main()
{int c;int ndigit[10]; // 声明数组// 初始化数组将数组中所有元素都置为0for (int i 0; i 10;i)ndigit[i] 0; // 在每次执行的时候可以把ndigit[i]理解成一个int变量while ((c getchar()) ! EOF){if (c 0 c 9)// 如果输入的是0-9的数字则给对应下标的元素加1比如输入2, 那么对应 ndigit[2-0]ndigit[c - 0];}// 打印输出数组printf(0-9数组元素\n);for (int i 0; i 10;i)printf(数字%d 输入的次数: %d\n, i, ndigit[i]);
}int ndigit[10]; 将变量ndigit声明为由10个整型数构成的数组。在C语言中数组下标总是从0开始因此该数组的10个元素分别是 ndigit[0], ndigit[1], ndigit[2], …, ndigit[9]数组下标可以是任何整型表达式包括整型变量i以及整型常量比如c - ‘0’就是一个整型表达式如果输入的字符是’0’-‘9’那么对应的整数值也是0-9刚好满足数组的下标取值
二、练习
编写一个程序打印输入中单词长度的直方图。水平方向的直方图比较容易绘制垂直方向的直方图则要困难些 注意长度为3的单词有3个长度为5的单词有5个直方图体现每个长度的数量即可 水平方向
#include stdio.h
#define OUT_WORD 1 // 不在单词中遇到空格、换行符、制表符state设置成 OUT_WORD
#define IN_WORD 0 // 在单词中遇到单词的第一个字符时state设置成 IN_WORD
#define MAX_WORD 10 /* max length of a word*/
#define MAX_HIST 15// 编写一个程序打印输入中单词长度的直方图。
main()
{int c, nc, state;int len; /* length of each bar */int maxValue; /* maximum value for wl[] */int ovflow; /* number of overflow words */int wl[MAX_WORD]; /* world length counters */state OUT_WORD; // 初始值不在单词中nc 0; /* number of chars in a word */ovflow 0; /* number of words MAX_WORD */// 初始化数组for (int i 0; i MAX_WORD;i)wl[i] 0;// 输入字符统计while ((c getchar()) ! EOF){if (c || c \n || c \t) {state OUT_WORD;if (nc 0)if (nc MAX_WORD)wl[nc]; // 统计小于最大单词长度限制的单词长度elseovflow; // 超出最大单词长度限制的单词的数量nc 0; // 单词长度置0下一个单词重新计数}else if (state OUT_WORD) {state IN_WORD;nc 1;}elsenc;}maxValue 0; // 找出所有单词中最大长度for (int i 0; i MAX_WORD;i){if (wl[i] maxValue) {maxValue wl[i];}}for (int i 0; i MAX_WORD;i){printf(%5d - %5d, i, wl[i]);if (wl[i] 0) {// 计算len, len对应直方图的长度wl[i] * MAX_HIST / maxValue // 这个公式可以保证单词长度数量最多的直方图最大是15其他数量的长度则按比例取// 比如数量最多的单词长度是5总共有3个那么len 3 * 15/3; 而长度为1的单词有1个则len 1*15/3if ((len wl[i] * MAX_HIST / maxValue) 0)len 1;}elselen 0;while (len 0) {putchar(*);--len;}putchar(\n);}if (ovflow 0)printf(There are %d words %d\n, ovflow, MAX_WORD);
}垂直方向
#include stdio.h
#define OUT_WORD 1 // 不在单词中遇到空格、换行符、制表符state设置成 OUT_WORD
#define IN_WORD 0 // 在单词中遇到单词的第一个字符时state设置成 IN_WORD
#define MAX_WORD 10 /* max length of a word*/
#define MAX_HIST 15// 编写一个程序打印输入中单词长度的直方图。
main()
{int c, nc, state;int maxValue; /* maximum value for wl[] */int ovflow; /* number of overflow words */int wl[MAX_WORD]; /* world length counters */state OUT_WORD; // 初始值不在单词中nc 0; /* number of chars in a word */ovflow 0; /* number of words MAX_WORD */// 初始化数组for (int i 0; i MAX_WORD;i)wl[i] 0;// 输入字符统计while ((c getchar()) ! EOF){if (c || c \n || c \t) {state OUT_WORD;if (nc 0)if (nc MAX_WORD)wl[nc]; // 统计小于最大单词长度限制的单词长度elseovflow; // 超出最大单词长度限制的单词的数量nc 0; // 单词长度置0下一个单词重新计数}else if (state OUT_WORD) {state IN_WORD;nc 1;}elsenc;}maxValue 0; // 找出所有单词中最大长度for (int i 1; i MAX_WORD;i){if (wl[i] maxValue) {maxValue wl[i];}}// 从上往下一行一行打印for (int i MAX_HIST; i 0; --i) {// 每行从左往右打印如果需要打印则打印 *, 如果不需要打印则打印 ;for (int j 1; j MAX_WORD;j) {if (wl[j] * MAX_HIST / maxValue i)printf( *);else printf( );}putchar(\n);}for (int i 1; i MAX_WORD;i)printf(%4d, i);printf(\n);for (int i 1; i MAX_WORD;i)printf(%4d, wl[i]);printf(\n);if (ovflow 0)printf(There are %d words %d\n, ovflow, MAX_WORD);
}编写一个程序打印输入中各个字符出现频度的直方图
#include stdio.h
#define MAX_CHAR 128 /* max number of chars*/
#define MAX_HIST 15
// 编写一个程序打印输入中各个字符出现频度的直方图
main()
{int c, len, max;int chars[MAX_CHAR];for (int i 0; i MAX_CHAR; i)chars[i] 0;while ((c getchar()) ! EOF) {if (c 0 c MAX_CHAR) {chars[c];}}max 0;for (int i 0; i MAX_CHAR; i) {if (chars[i] max)max chars[i];}for (int i 0; i MAX_CHAR; i) {printf(%d-%d, i, chars[i]);len chars[i] * MAX_HIST / max;while (len 0) {putchar(*);--len;}putchar(\n);}
}
文章转载自: http://www.morning.jokesm.com.gov.cn.jokesm.com http://www.morning.rtsdz.cn.gov.cn.rtsdz.cn http://www.morning.drtgt.cn.gov.cn.drtgt.cn http://www.morning.flncd.cn.gov.cn.flncd.cn http://www.morning.kcypc.cn.gov.cn.kcypc.cn http://www.morning.qrcsb.cn.gov.cn.qrcsb.cn http://www.morning.xdwcg.cn.gov.cn.xdwcg.cn http://www.morning.hotlads.com.gov.cn.hotlads.com http://www.morning.txjrc.cn.gov.cn.txjrc.cn http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn http://www.morning.bhgnj.cn.gov.cn.bhgnj.cn http://www.morning.tkgjl.cn.gov.cn.tkgjl.cn http://www.morning.crqpl.cn.gov.cn.crqpl.cn http://www.morning.qbtkg.cn.gov.cn.qbtkg.cn http://www.morning.sgrdp.cn.gov.cn.sgrdp.cn http://www.morning.ntyanze.com.gov.cn.ntyanze.com http://www.morning.xmrmk.cn.gov.cn.xmrmk.cn http://www.morning.dfndz.cn.gov.cn.dfndz.cn http://www.morning.fswml.cn.gov.cn.fswml.cn http://www.morning.sqqhd.cn.gov.cn.sqqhd.cn http://www.morning.nbwyk.cn.gov.cn.nbwyk.cn http://www.morning.mbhdl.cn.gov.cn.mbhdl.cn http://www.morning.brcdf.cn.gov.cn.brcdf.cn http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn http://www.morning.fglth.cn.gov.cn.fglth.cn http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn http://www.morning.wqhlj.cn.gov.cn.wqhlj.cn http://www.morning.kndt.cn.gov.cn.kndt.cn http://www.morning.sjwqr.cn.gov.cn.sjwqr.cn http://www.morning.pfjbn.cn.gov.cn.pfjbn.cn http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn http://www.morning.jcwt.cn.gov.cn.jcwt.cn http://www.morning.rynrn.cn.gov.cn.rynrn.cn http://www.morning.wdykx.cn.gov.cn.wdykx.cn http://www.morning.hjjkz.cn.gov.cn.hjjkz.cn http://www.morning.ydrfl.cn.gov.cn.ydrfl.cn http://www.morning.pljdy.cn.gov.cn.pljdy.cn http://www.morning.hgcz.cn.gov.cn.hgcz.cn http://www.morning.rfpb.cn.gov.cn.rfpb.cn http://www.morning.qbrs.cn.gov.cn.qbrs.cn http://www.morning.rgrdd.cn.gov.cn.rgrdd.cn http://www.morning.hcbky.cn.gov.cn.hcbky.cn http://www.morning.ltqzq.cn.gov.cn.ltqzq.cn http://www.morning.dtpqw.cn.gov.cn.dtpqw.cn http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn http://www.morning.yfrbn.cn.gov.cn.yfrbn.cn http://www.morning.mqxrx.cn.gov.cn.mqxrx.cn http://www.morning.gwwky.cn.gov.cn.gwwky.cn http://www.morning.nzsdr.cn.gov.cn.nzsdr.cn http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn http://www.morning.kszkm.cn.gov.cn.kszkm.cn http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn http://www.morning.msbpb.cn.gov.cn.msbpb.cn http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn http://www.morning.cmrfl.cn.gov.cn.cmrfl.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.wlgpz.cn.gov.cn.wlgpz.cn http://www.morning.cywf.cn.gov.cn.cywf.cn http://www.morning.xrct.cn.gov.cn.xrct.cn http://www.morning.qzpqp.cn.gov.cn.qzpqp.cn http://www.morning.cnqff.cn.gov.cn.cnqff.cn http://www.morning.hongjp.com.gov.cn.hongjp.com http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn http://www.morning.kdbcx.cn.gov.cn.kdbcx.cn http://www.morning.pfntr.cn.gov.cn.pfntr.cn http://www.morning.gthwz.cn.gov.cn.gthwz.cn http://www.morning.gychx.cn.gov.cn.gychx.cn http://www.morning.rhsr.cn.gov.cn.rhsr.cn http://www.morning.zxxys.cn.gov.cn.zxxys.cn http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn http://www.morning.rbsmm.cn.gov.cn.rbsmm.cn http://www.morning.jsxrm.cn.gov.cn.jsxrm.cn http://www.morning.rlcqx.cn.gov.cn.rlcqx.cn http://www.morning.lhztj.cn.gov.cn.lhztj.cn http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn http://www.morning.tjjkn.cn.gov.cn.tjjkn.cn http://www.morning.jjsxh.cn.gov.cn.jjsxh.cn http://www.morning.mprpx.cn.gov.cn.mprpx.cn