c语言作业资料(4)

2019-09-01 16:00

数组实验:

1编程:输入一个正整数n(0 void main() {

int i,j,n,x,a[10],t;

printf(\输入数据的个数n:\ scanf(\

printf(\输入%d个整数:\ for(i=0;i

scanf(\ printf(\输入要插入的整数:\ scanf(\ for(i=0;i

{ if(x>a[i]) continue; j=n-1; while(j>=i) {

a[j+1]=a[j]; j--; } a[i]=x; break; }

if(i==n) a[n]=x; for(i=0;i

printf(\putchar('\\n'); }

2.编程,输入1个正整数n(1 void main()

{

int i,n,index,temp,a[10],min,max; printf(\请输入整数个数n(n<=10):\ scanf(\

printf(\请输入%d个整数:\\n\ for(i=0;i

scanf(\

min=max=a[0]; for(i=0;i

if(a[i]

temp =a[0];a[0]=a[index];a[index]=temp;

for(i=1;i

{if(a[i]>max)

{max=a[i];index=i;}}temp=a[n-1];a[n-1]=a[index];a[index]=temp; printf(\交换后的%个整数为:\ for(i=0;i

printf(\ }

运行结果:

请输入整数个数n(n<=10):5 请输入5个整数:

2 1 5 10 9

交换后的个整数为:1 2 5 9 10 Press any key to continue 3.编程,输入1个正整数n(1

方法一:选择排序法 源程序: #include #include void main()

{int i,index,temp,n,j,a[10];

printf(\scanf(\

printf(\for(i=0;i

for(j=i+1;j<=n-1;j++)

if(abs(a[j])

temp=a[i];a[i]=a[index];a[index]=temp;} printf(\for(i=0;i

方法二:冒泡法 源程序: #include

#include

void main()

{int i,temp,n,j,a[10];

printf(\scanf(\

printf(\for(i=0;i

for(i=0;i<=n-j-2;i++)

if(abs(a[i])>abs(a[i+1])) {temp=a[i];a[i]=a[i+1];a[i+1]=temp;} }

printf(\for(i=0;i

运行结果:

Input a number please: 10

Input 10 numbers:-11 2 8 5 -3 -16 9 7 6 10

exchanged 10 numbers: 2 -3 5 6 7 8 9 10 -11 -16 Press any key to continue

4.编程,平面上有n个点,求所有各点之间的最长距离。要求定义和调用函数计算距离 源程序: #include #include

float fun(float x0,float x1,float y0,float y1) {float y;

y=sqrt(pow((x0-x1),2)+pow((y0-y1),2)); return y;} void main() {float x[5],y[5]; int i,j;

float max=0.0,t=0.0;

printf(\printf(\横坐标:\for(i=0;i<5;i++) scanf(\printf(\纵坐标:\for(i=0;i<5;i++) scanf(\for(i=0;i<4;i++) {for(j=i;j<4;j++)

{t=fun(x[i],x[j+1],y[i],y[j+1]);

if(max

printf(\}

输入点数:5 输入5个点的坐标: 1 2.5 3.2 3.7 6.5 2.3 5.1 0.6 3.6 1.2 最长距离是5.50

方法二: #include

#include void main( )

{ float a[20][2],b[20][20],x,y; int n,i,j,row,cel;

printf(\输入点数:\ printf(\输入%d点的坐标:\ for (i=0;i

scanf(\ printf(\

for (i=0;i

printf(\ for (i=0;i

printf(\ printf(\

row=0;cel=0; for (i=0;i<5;i++)

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

if(b[i][j]>b[row][cel]) {row=i;cel=j;}

printf(\第%d点到第%d点距离最大是%.2f\\n\

}

5.编程,输入一个n行m列(n<=4,m<=4)的数组,先以n行m列的格式输出该数组,然后找出该数组中值最小的元素,输出该元素及其行下标和列下标。 程序如下: #include

void main()

{int n,m,i,j,a[4][4],min,max,min_row,min_col,max_row,max_col; printf(\输入行数\scanf(\printf(\输入列数\scanf(\for(i=0;i<=n-1;i++) {for(j=0;j<=m-1;j++) scanf(\for(i=0;i<=n-1;i++) {for(j=0;j<=m-1;j++) printf(\printf(\min_row=min_col=0; min=a[0][0];

for(i=0;i<=n-1;i++) for(j=0;j<=m-1;j++) if(a[i][j]

{min=a[i][j];

min_row=i; min_col=j;} max=a[0][0];

for(i=0;i<=n-1;i++) for(j=0;j<=m-1;j++) {if(a[i][j]>max) max=a[i][j];

max_row=i; max_col=j;}

printf(\最大值是:a[%d][%d]=%d,最小值是:a[%d][ %d]=%d\\n\,max_row,max_col,max,min_row,min_col,min);} 运行结果 输入行数3 输入列数2 1 2 3 4 5 6 1 2 3 4

5 6

最大值是:a[2][1]=6,最小值是:a[0][ 0]=1 Press any key to continue


c语言作业资料(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大物A(二)综合训练

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: