《C语言程序设计》江宝钏著实验六详解 下载本文

实用标准文案

double sum1,sum2=0,v[3],average; printf(\张\\t王\\t李\\t赵\\t周\\n\for(i=0;i<3;i++) { }

for(i=0;i<3;i++) { }

average=sum2/3;

sum1=0; for(j=0;j<5;j++)

sum1+=a[i][j]; switch(i) {

case 0:printf(\ math:\case 1:printf(\ c :\case 2:printf(\}

for(j=0;j<5;j++)

scanf(\

v[i]=(double)sum1/5; sum2+=v[i];

精彩文档

实用标准文案

}

for(i=0;i<3;i++) { }

printf(\

switch(i) {

case 0:printf(\ :%.2lf\\n\case 1:printf(\case 2:printf(\}

3.较难编程题

编程题1:给定一个整型数组a,要求将数组a中的元素进行从小到大的排序(用冒泡法排序) 【算法描述】

从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后;第二遍只需考虑(N-1)个数,即不用考虑最后一个数;以此类推每次少考虑一个数,直到第(N-1)遍比较后就可以完成排序。

精彩文档

实用标准文案

答:

#include #define N 1000 void main() {

int a[N],n; int i,j,t;

printf(\请输入数组中元素的个数:\scanf(\

printf(\ 输入数组:\for(i=0;i

scanf(\

for(i=0;i

for(j=0;j

if(a[j]>a[j+1]) { }

t=a[j]; a[j]=a[j+1]; a[j+1]=t;

精彩文档

实用标准文案

}

printf(\ 排序后的数列为:\for(i=0;i

printf(\

printf(\

编程题2:有15个整数(已排序)存放在一个数组中,输入一个数,要求用折半查找法找出该数在数组中的下标值,如果该数不在数组中,则输出“无此数”。这15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。

提示:折半查找法:在一个已从小到大排序的数组a中,用b(begin)表示数组首元素的下标,用e(end)表示数组末元素的下标,需查找的数x首先和处于数组最中间的下标为m=(b+e)/2的元素比较,若x和该数组元素相等,则找到位置,返回m;否则,若x大,则x可能落在下半区中,令b=m+1,若x小,则x可能落在上半区中,令e=m-1。重新计算m,再比较x和a[m];重复上述操作直到找到相等元素或b>e。若找到相等元素,则返回元素下标,否则返回-1表示无此数。 答:

#include #define N 15 void f(int s[],int n);

精彩文档

实用标准文案

void main() { }

int s[N]={1,2,3,5,9,10,20,23,45,56,66,70,80,90,100},b=0,e=N,mid,x; printf(\scanf(\while(b<=e) { } if(b>e)

printf(\mid=(b+e)/2; if(x==s[mid]) { }

else if(x

e=mid-1;

printf(\f(s,mid);break;

else

b=mid+1;

精彩文档