编写程序,输入一个一堆数组,寻找并输出数组中的最大值和最小值

编写程序,输入一个一堆数组,寻找并输出数组中的最大值和最小值,第1张

C语言编程题定义 “int a[10]”,从键盘输入10个元素,求最大 最小值及所在元素的下标

#include<stdioh>

int main()

{int i,imax=0,imin=0,a[10];

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=1;i<10;i++)

if(a[i]>a[imax])imax=i;

else if(a[i]<a[imin])imin=i;

printf("最大值a[%d]=%d\n",imax,a[imax]);

printf("最小值a[%d]=%d\n",,imin,a[imin]);

return 0;

}

一个一个的比较:

如:

max=a

if max < b then max=b

if max < c then max=c

if max < d then max=d

if max < e then max=e

print "最大值" & max

利用的是分治的思想

对于任意的区间[a,b]分别在[a,(a+b)/2] 和[(a+b)/2,b]

上找到最大值,这两个最大值比较 返回较大的一个,就是整个[a,b]上的最大值

递归下去 就可以找出结果了。

以下是使用JavaScript编写找出三个数中最大值的程序示例:

// 定义三个数

var a = 10;

var b = 20;

var c = 15;

// 比较三个数的大小,找出最大值

var max = a;

if (b > max) {

max = b;

}

if (c > max) {

max = c;

}

// 输出最大值

consolelog("三个数中最大值为:" + max);

在上述代码中,我们先定义了三个变量a、b、c,分别代表三个数字。然后通过比较这三个数字的大小,找出其中的最大值,并将其保存在变量max中。最后,我们使用consolelog()函数将最大值输出到控制台。

查找最大值的程序,不是很简单的吗?

如下即可:

ORG 0H

MOV R0, #30H

ACALL ZI

SJMP $

;-----------------------------------

ZI:

MOV B, #0 ;先用0当做最大值

MOV R7, #16 ;比较16次

LOOP: MOV A, @R0 ;取来一个数字

CJNE A, B, B1 ;比较

B1: JC B2 ;有借位转移

MOV B, A ;够减则存到B中

B2: INC R0 ;转到下一个

DJNZ R7, LOOP ;循环16遍

RET

;-----------------------------------

END

//数组版本

#include <stdioh>

#define N 100

int main()

{

float max,min,a[N];

int n,i;

scanf("%d",&n);

for(i=0;i<n;i++)

scanf("%f",a+i);

for(max=min=a[0],i=1;i<n;i++)

{

if(a[i]>max)

max=a[i];

if(a[i]<min)

min=a[i];

}

printf("%g %g",max,min);

return 0;

}

//普通版本

#include <stdioh>

int main()

{

float t,max,min;

int n;

scanf("%d",&n);

scanf("%f",&t);

max=min=t;

while(--n)

{

scanf("%f",&t);

if(t>max)

max=t;

if(t<min)

min=t;

}

printf("%g %g",max,min);

return 0;

}

求采纳,谢谢

1、最快的查找方式是:二分法查找。

2、查找的线性表分:无序线性表、有序线性表、分块有序线性表。

3、对无序线性表只能采用顺序查找,顺序查找的平均比较次数为(n+1)/2

4、对有序线性表可以采用二分查找,二分查找的比较次数为log2n

5、对分块有序线性表可以采用分块法查找。

# include <stdioh>

# include <malloch>

typedef struct node

{

int data;

struct node next;

}Node,pnode;

pnode creatlist()

{

int i,k,j=0;

pnode Head =(pnode)malloc(sizeof(Node));

Head->next= NULL;

printf("Input element number:");

scanf("%d",&i);

while(j < i)

{

printf("Input %dth element:",j);

pnode pnew = (pnode)malloc(sizeof(Node));

scanf("%d",&k);

pnew->data=k;

pnew->next=Head->next;

Head->next = pnew;

//Head = pnew;

j++;

}

return Head;

}

void traverlist(pnode l)

{

pnode p1;//= (pnode)malloc(sizeof(Node));

pnode p2;//= (pnode)malloc(sizeof(Node));

int t;

if(l->next==NULL)

return;

p1 = l->next;

t = p1->data;

while(p1->next != NULL)

{

if( t > p1->next->data )

{

t = p1->next->data;

}

p1=p1->next;

}

printf("Min:%d\n",t);

p2 = l->next;

t = p2->data;

while(p2->next != NULL)

{

if( t < p2->next->data)

{

t = p2->next->data;

以上就是关于编写程序,输入一个一堆数组,寻找并输出数组中的最大值和最小值全部的内容,包括:编写程序,输入一个一堆数组,寻找并输出数组中的最大值和最小值、VB程序 选取五个值中的最大值、请问下面的程序是怎样找出最大值的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10635679.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存