当前位置:首页 » 编程语言 » C语言求次大值的命令
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

C语言求次大值的命令

发布时间: 2022-04-26 09:57:46

c语言问题,假设10个整数用一个一维数组存放,求出最大值和次大值。

你的那个scanf函数的提供地址有错改为 scanf("%d",&a[i]);
还有输出的那也有问题改成 for(i=0;i<N;i++)
{
printf("%d",a[i]);
printf("%c",' ');
}
不然数字之间没有空格,全部代码如下:

#include <stdio.h>
#define N 10
void main()
{
int a[N],t,i,j;
printf("input the numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<N;i++)
{
printf("%d",a[i]);
printf("%c",' ');
}

}

个人建议,按题目要求没必要排序,定义两个变量,一个存最大值,遍历数组找到最大值后记录它在数组的下标,然后在下次遍历找次大值的时候跳过就可以了

② 用c语言进行最大值和次大值的输出

#include<stdio.h>
#include<math.h>
intmain(void)
{
intn,t,min=0,max=0,k;
scanf("%d",&n);
if(n-->=1)scanf("%d",&t);
min=max=t;
for(k=1;k<=n;k++)
{
scanf("%d",&t);
if(t<min)
{
min=t;
}
if(t>max)
{
max=t;
}
}
printf("%d%d ",min,max);
return0;
}

你初始最大最小为0,如果输入全部是负数就会判断最大数错误

你初始最大最小为0,如果输入全部是正数就会判断最小数错误

③ c语言如何求次大值

#include<iostream>
using namespace std;

void Fun(int *num,int n);

int main()
{
int a[]={1,2,20,10,532};
Fun(a,5); //按大到小排列
cout<<a[1]<<endl; //输出第2个,就是次大的,第1个就是最大的
}

void Fun(int *num,int n)
{
int temp;
for(int i=1; i<n; i++)
{
for(int j=0; j<n-i; j++)
{
if(num[j]<num[j+1])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
}

④ 从键盘上输入10个整数,求其中最大值和次大值,用c语言怎么做

main()
{
int max,max2 ,a[10],i;
for (i=0;i<10;i++)
{ scanf("%d",a[i]);}
max=a[0];
for(i=1;i<10;i++)
{
max=max<a[i]?a[i]:max;

}
for(i=0;i<10;i++)
{if(max2>a[i]&&max2<max)
max2=a[i];
}
}

⑤ C语言如何求次大值

简单的办法就是遍历啊,第一遍找到最大值,然后将最大值剔除或者做上标记,然后遍历第二遍找剩余数的最大值,那么找到的就是次大值了。

⑥ (C语言)求最大、次大、最小和次小值

#include<stdio.h>
#define N 20
int main()
{
int A[N][2];
int *max,*nmax,*min,*nmin;
int n;
printf("整数的个数:");
scanf("%d",&n);
int i;
for(i=0;i<n;++i)
{
printf("第%d个数:",i+1);
scanf("%d",A+i);
printf("序号:");
scanf("%d",A[i]+1);
}
printf("输入结束\n");
max=min=nmax=nmin=A[0];
for(i=1;i<n;++i)
{
if(A[i][0]>*max)
{
nmin=max=A[i];
continue;
}
if(A[i][0]<*min)
{
nmax=min=A[i];
continue;
}
}
for(i=0;i<n;++i)
{
if(A[i][0]<*max&&A[i][0]>*nmax)
{
nmax=A[i];
}
if(A[i][0]>*min&&A[i][0]<*nmin)
{
nmin=A[i];
}
}
printf("\n最大值:%d,序号:%d\n",*max,*(max+1));
if(*max==*nmax)
printf("没有次大值\n");
else
printf("次大值:%d,序号:%d\n",*nmax,*(nmax+1));
printf("最小值:%d,序号:%d\n",*min,*(min+1));
if(*min==*nmin)
printf("没有次小值\n");
else
printf("次小值:%d,序号:%d\n",*nmin,*(nmin+1));
return 0;
}

⑦ C语言,求数组中的最大值和次大值

#include "stdio.h"
int main(void)
{
int str[10]={1,2,3,4,5,6,7,8,9,10};
int i=sizeof(str);
int max0=0;//最大值
int max1=0;//次大值
for(i=0;i<10;i++)
{
if(str[i]>max0)max0=str[i];
else if(str[i]>max1)max1=str[i];
}
system("pause");
return 0;
}

⑧ C语言程序设计问题: 求最大、次大、最小和次小值

int i, n, k1, k2, k3, k4,
max, pmax, min, pmin,
num[ N ], sub[ N ];

scanf ( "%d\n", &n );
scanf 函数里不要加' \n ' 和别的一些特殊符号,最好什么都别乱加,直接使用%d %f 等一些格式输入符。

# include <stdio.h>
# define N 30
int main ( )
{
int i, n, k1, k2, k3, k4,
max, pmax, min, pmin,
num[ N ], sub[ N ];
printf("输入整数的总个数:");
scanf ( "%d", &n );
for ( i = 0; i < n; i ++ )
{
printf("输入你喜欢的整数和它的序列号: ");
scanf ( "%d%d",&num[ i ], &sub[ i ] );
}

max = min = pmax = pmin = num[ 0 ];
k1 = k2 = k3 = k4 = sub[ 0 ];

for ( i = 1; i < n; i ++ ) {
if ( max <= num[ i ] ) { //最大值
max = num[ i ];
k1 = sub[ i ];
}
if ( min >=num[ i ] ) { //最小值
min = num[i];
k3 = sub[i];
}
if ( pmax <=num[ i ] && num[ i ] !=max ) { //次大值
pmax = num[ i ];
k2 = sub[ i ];
}
if ( pmin >= num[ i ] && num[ i ] !=min ) { //次小值
pmin = num[ i ];
k4 = sub[ i ];
}
}
printf ( "max=%d,maxNum=%d\n pmax=%d,pmaxNum=%d\nmin=%d,minNum=%d \npmin=%d,pminNum=%d\n", max, k1, pmax, k2, min, k3, pmin, k4 );

return 0;
}

⑨ c语言 怎么求一个数组的次大值的源代码

可以使用循环语句,while语句也可以的,定义一个变量,是变量i,将i赋值为0,i小于数组里的成员个数,然后i++;里面可以在套用一个if语句的,然后慢慢的比较,将最大的一个值赋给一个重新的定义的变量就好,最后输出就ok了