C语言初学dowhile语句(对输入数字字符,特殊符号等,进行统计)
《高级语言程序设计》实验报告姓名学号年级专业计算机科学与技术班级日期2012/11/19实验内容输入一行字符,分别统计出其中的英文字符(大写字母、小写字母)、空格、数字和其他字符的个数实验环境codeblocks10.05。实验目的熟悉掌握用while语句、do-while语句和for语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法。(3)进一步学习调试程序开始实验步骤:实验流程图:
K=15d5 SW /*d-* ,figure_num=0,letter_num=0,space_num=0,other_num=0;
K<=’z’&&k>=’a’||k<=’Z’&&k>=’A’
结束
K<=’9’&&k>=’0’
Y
数字个数=5,字母个数=7,空格个数=2,其他个数=1
figure_num+=1;
letter_num+=1
K=’空格’
space_num+=1;
other_num+=1;
K=’\n’
2)程序清单:int main(){char k;int figure_num=0,letter_num=0,space_num=0,other_num=0;printf("请输入一行字符\n");do{k=getchar();if(k<='9'&&k>='0')figure_num+=1;elseif((k<='z'&&k>='a')||(k<='Z'&&k>='A'))letter_num+=1;elseif(k==' ')space_num+=1;elseif(k=='\n')break;elseother_num+=1;}while(k!='\n');printf("数字个数=%d,字母个数=%d,空格个数=%d,其他个数=%d\n",figure_num,letter_num,space_num,other_num);return 0;}3)运行结果:4)实验分析及经验:while 和do while虽然可以互相替换,但是要考虑到第二个语句是先执行后判断,无论判断是否成立,循环体已经执行了一次程序,所以在实验过程中出了少许差错,通过仔细排查得知,假设我最后按了enter键,虽然条件不成立,但是循环体仍然执行了最后一次,导致other_num再+1,所以输出结果总是多了一,因此我在最后一个if语句中,写入,最后一次键入的是enter,则终止循环,跳出循环体,所以 other_num就不会+1,程序运行正确。