![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
找出一堆数组中的最大值并输出其下标
import java.util.Scanner;
public class Max{
public static void main(String[]args){
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int a[]=new int[n+1];//数组的长度为你输入的+1
a[0]=0;//将数组的首个元素拿来保存每一次循环比较得到的最大值
int num=0;//用来保存最大值的下标
for(int i=1;i<=n;i++){
a<i>=input.nextInt();
}
findMax(a,num);
}
private static void findMax(int[]a,int num){
for(int i=1;i<=a.length-1;i++){//外层循环
for(int j=i+1;j<=a.length-1;j++){
if(a<i>>=a[j]&&a<i>>a[0])
{a[0]=a<i>;num=i;}
else if(a<i>a[0]){
a[0]=a[j];num=j;
}
}
}
System.out.print(a[0]+""+(num-1));
}
}
结果:
6
3 5 6 8 9 3
9 4
扩展资料:
C程序中system函数可以调用某些DOS命令,可以用于运行可执行文件,也可以用于运行批处理文件。
1.使用sysytem函数调用DOS命令:
[例]system("cls");
2.使用sysytem函数运行可执行文件:
[例]system("\"C:\\WINDOWS\\system32\\mspaint.exe\"");
3.使用sysytem函数运行批处理文件:
[例]system("\"c:a.bat\"");
或system("\"c:a.cmd\"");
以运行可执行文件为例,其完整的代码为:
#include"stdlib.h"
#include"windows.h"
main()
{
system("\"C:\\WINDOWS\\system32\\calc.exe\"");//打开计算器程序
}
此代码的功能是打开Windows自带的计算器工具。
代码如下:
public class today{
public static void main(String[] args){
int[]array={1,2,3,4,5};
int maxValue=max(array);
int[]array1={97,95,93,96};
System.out.println("最大值"+maxValue);
int index=indexOf(array,2);
System.out.println("2的下标"+index);
double averageScore=average(array1);
System.out.println("平均分"+averageScore);
}
public static int max(int[] array){
int maxValue=array[0];
for(int i=0;i<array.length;i++)
{
if(array[i]>maxValue)
{
maxValue=array[i];
}
}
return maxValue;
}
public static int indexOf(int[]array,int key){
for(int i=0;i<array.length;i++)
{
if(array[i]==key)
{
return i;
}
}
return -1;
}
public static double average(int[] scores){
int minValue=scores[0];
int maxValue=scores[0];
int sum=0;
for(int i=0;i<scores.length;i++)
{
if(scores[i]>maxValue)
{
maxValue=scores[i];
}
if(scores[i]<minValue)
{
minValue=scores[i];
}
sum+=scores[i];
}
return (double)(sum-maxValue-minValue)/(scores.length-2);
}
}
扩展资料
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中,加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题,没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了。
数组的特点
1、数组是相同数据类型的元素的集合。
2、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
下面的程序可以实现找出最大值,输出该最大值和下标。
#include<stdio.h>
#include<stdlib.h>
#define N 10
int main()
{
int num[N]={19,27,10,15,95,37,57,87,81,75};
int i;
int max;
int max_sign;
max=num[0];
for(i=1;i<N;i++)
{
if(num[i]>max)
{
max=num[i];
max_sign=i;
}
}
printf("the max number is %d,place is %dth\n",max,max_sign+1);
return 0;
}
运行结果如下,可以自己跑一下程序,就看到结果了。最大值在数组中的第5个位置(从1开始计数的)。
#include<math.h>
#include<stdio.h>
#include <stdlib.h>
#define uint8_t unsigned char
#define uint16_t unsigned int
#define uint32_t unsigned long
uint8_t sbuf[10]={92,43,131,43,65,86,75,221,24,45};
//在数组中寻找最大值,返回其下标
uint8_t Finding_Maximum_char(uint8_t *Buf,uint8_t Len)
{
uint8_t num;
uint8_t i,n;
num=*Buf;
for(i=0;i<Len;i++)
{
if(*Buf++>num)
{
num=*(Buf-1);
n=i;
}
}
return n;
}
uint8_t number;
void main(void)
{
number=Finding_Maximum_char(sbuf,10);
while(1);
}