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程序 选取五个值中的最大值、请问下面的程序是怎样找出最大值的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)