c语言实验8字符数组实验报告,C语言实验6数组实验报告.docx

C语言实验6数组实验报告

信息科学与技术学院实 验 报 告 课程名称 高级语言程序设计 实验序号 6 实验项目 数组 实验地点 综B-503 实验学时 2 实验类型 验证性 指导教师 实 验 员 专 业 _电子信息工程__ 班 级 2015电信1班 学 号 姓 名 2016 年 6 月 3 日成绩:教师评语指导教师签名: 批阅日期:一、实验目的及要求1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)二、实验原理与内容1.用选择法对10个整数排序。10个整数用scanf函数输入。2.已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。3.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。三、实验软硬件环境Visual C++6.0环境四、实验过程(实验步骤、记录、数据、分析)1.用选择法对10个整数排序。10个整数用scanf函数输入。#includeint main(){ int b[10],a=1,x,y,z,i=1; printf("请输入10个整数:"); scanf("%d %d %d %d %d %d %d %d %d %d",&b[0],&b[1],&b[2],&b[3],&b[4],&b[5],&b[6],&b[7],&b[8],&b[9]); for(y=0;y<10;y++) { for (;a<10;a++) { if (b[a]<=b[y]) x=b[a],b[a]=b[y],b[y]=x; } i++;a=i; } printf("由小到大排列是:"); for(z=0;z<10;z++) { printf("%d ",b[z]); } printf("\n"); return 0;}运行结果:分析:这里的选择排序法思想是在10个数中选出一个最小的放在第一个位置,然后在剩下的9个中选择出最小的放在第二个位置,以此类推。2.已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。#includeint main(){int a[6]={2,4,6,8,10},i,j,b;for(i=0;i<5;i++)printf("%d ",a[i]);printf("\n请输入一个数,将会按原来的排列规律插入到数组中:");scanf("%d",&b);for(i=0;i<5;i++){if (b<=a[i])break; }for(j=5;j>i;j--){a[j]=a[j-1];}a[i]=b;for(j=0;j<6;j++){printf("%d ",a[j]);}printf("\n");return 0;}运行结果:分析:原来的数组是按照从小到大的过滤排列的。在第一个for语句中,可以算出i的值,知道新输入的数应该插入那里。第二个for语句,是将从插入的数的位置开始,后面的数的下标全部加1.最后,按a[0]到a[5]顺序输出。3.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。#includeint main(){char s[80];int abc=0,ABC=0,num=0,space=0,el=0,i=0,a;for (a=1;a<=3;a++){printf("请输入第%d行文字:",a);gets(s);while(s[i]!='\0'){if(s[i]>='a' && s[i]<='z')abc++;else if(s[i]>='0' && s[i]<='9')num++;else if (s[i]==' ')space++;else if (s[i]>='A' && s[i]<='Z')ABC++;else el++;i++;}i=0;}printf("输入的3行文字中,大写英文字母的个数是:%d\n",ABC);printf("输入的3行文字中,小写英文字母的个数是:%d\n",abc);printf("输入的3行文字中,空格的个数是:%d\n",space);printf("输入的3行文字中,数字的个数是:%d\n",num);printf("输入的3行文字中,其他字符的个数是:%d\n",el);return 0;}运行结果:分析:\0 是结束符,在输入字符串后,程序会自动在后面加上结束符\0,所以当s[i]不等于\0时,可继续循环,不断计算相应字符种类的个数。运用gets()函数时,即使输入的字符中有空格

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值