原始数据序列为:{5,8,12,15,26,78,92,93,102},需要插入的数据值为25。 算法思想:(1)通过比较,确定需要插入的位置。
(2)从插入位置开始,所有数据依次右移(后移)1位,然后将数据插入
到确定的位置上。
#include
#define N 10
int a[N]={5,8,12,15,26,78,92,93,102}; main()
{ int i,j,k,data=25; clrscr();
for(i=0;i if(data=k;j--) _______________; /*填空位置(2),插入位置之后所有元素依次右移1位*/ _______________; /*填空位置(3),将指定的数据插入到有序序列中*/ for(i=0;i<=N-1;i++) printf(\ } 填空位置 1 2 3 实验运行结果 (2) 计算矩阵边界元素的和。 #include int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; main() {int i,j,s=0; 31 人工填空语句 实验填空语句 找到数据位置退出循环 a[j+1]=a[j] a[j]=data 5,8,12,15,25,26,78,92,93,102 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 for(i=0;i<=M-1;i++) for((1)__________;(2)__________;j++) if((3)____________________) s=s+a[i][j]; printf(\} 填空位置 1 2 3 实验运行结果 3.编程题: (1)编辑程序,将用户输入的任意字符串中的数字字符全部删除,形成新的字符串输出。 main() { char s[],t[]; int l,i,n=0; gets(s); l=strlen(s); for(i=0;i<=l;i++) if(s[i]>=’0’&&s[i]<=’9’) continue; else t[n++]=s[i]; t[n]=’\\0’; printf(“%s”,t); } (2) 输入n个学生成绩,计算他们的平均值并输出所有高于平均成绩的学生成绩。 main() { int n,i; float a[100],aver=0; sanf(“%d”,&n); for(i=1;i<=n;i++) { scanf(“%f”,&a[i]); aver+=a[i]; 32 人工填空语句(或表达式) 实验填空语句(或表达式) j=0 j<=n-1 i==0||j==0||i==M-1||j==N-1 } aver=aver/n; printf(“%f\\n”,aver); for(i=1;i<=n;i++) if(a[i]>aver) printf(“%f ”,a[i]); } 4.综合题: 程序: 顺序排序: #include int i, j, tem, A[10]; printf(“输入10个整数:”); for(i=0; i<=9; i++) scanf(“%d”,&A[i]); /*输入*/ for(i=0; i<=8; i++) /*确定擂台下标 */ for(j=i+1;j<=9; j++) if(A[j]>A[i]) /* 与擂台上的数比较 */ { /* 大者交换至擂台上 */ tem=A[i]; A[i]=A[j]; A[j]=tem; } printf(“\\n降序排序后的结果是:\\n”); for(i=0; i<=9; i++) printf(“%d\\t”,A[i]); /* 输出 */ } 选择排序: #include int i, j, tem, k, A[10]; printf(“输入10个整数:”); for(i=0; i<=9; i++) scanf(“%d”,&A[i]); /*输入*/ for(i=0; i<=8; i++) 33 { k=i; /*最大者下标初值 */ for(j=i+1;j<=9; j++) if(A[j]>A[k]) k=j; /* 调整最大者下标 */ tem=A[i]; A[i]=A[k]; A[k]=tem; /* 交换 */ } printf(“\\n降序排序后的结果是:\\n”); for(i=0; i<=9; i++) printf(“%d\\t”,A[i]); /* 输出 */ } 冒泡排序: #include { int A[10], i, j, temp; printf(“输入10个整数: ”); for(i=0; i<=9; i++) scanf(“%d”,&A[i]); /* 输入 */ for(i=0; i<=8; i++) /* 冒泡9轮 */ for(j=0; j<=9-i-1; j++) /* 第i轮冒泡,将最值移至A[9-i] */ if(A[j]>A[j+1]) {temp =A[j]; A[j] =A[j+1]; A[j+1] =temp;} printf(“\\n升序排序结果是:\\n”); for(i=0; i<=9; i++) printf(“%d\\t”,A[i]); /* 输出 */ 流程图: 顺序排序: 选择排序: 冒泡排序: 34 实验7 综合程序设计:综合运用C语言基本知识设计程序 班 级 专 业 所用软件 学 号 姓 名 计算机号 实 验 室 成绩评定 教师签名 7.1 实验目的 通过本次实验,使学生能够灵活运用所学知识,完成程序设计,进一步提高程序设计 的能力。 7.2 实验预习 1.复习函数的相关知识。 2.复习数组的相关知识。 7.3 实验任务 1. 餐饮服务质量调查打分 解法一: #include { int i, j, grade; int score[STUDENTS], count[GRADE_SIZE] = {0}; printf(\ students:\\n\ for (i=0; i scanf(\ } for ( i=0; i switch (score[i]) { case 1: count[1]++; break; 35