A. c语言 利用指针实现求数组元素中的最大值和最小值
这个乍一看没有错误
但我把你打程序抄近TC运行了一知州下
发现不弊猛耐是像你说的那样的错误
及时第一位是最大的也会输出错误
无论怎么
输出的第一位都是24940
最小的也有错误
最小有时会输出最大
后来仔细看了一下
发现你后面一个for循环里有大错误
if语句是进行比较
就第一个if来说
你把a[0]与a[1]先进行比较
这里你用的是p=p+i;
就是使p指向p+i所指向的内存
但需要注意
假设我输入的一组租春数是
9
10
8
5
15
4
2
3
11
1
当进行第一次循环后
p会指向p+1
既然是用p=p+i;
这是p+1就变成了p
当计算机再进行循环至a[4]
也就是15时
就会有p=p+4;
而这时想对于刚开始时的指针p就已经不是指向你想要他指的那个数(也就是大的那个)了
此时的指针p与刚开始的比其实不是指向了p+4
而是指向了p+5
也就是4了
所以程序出现了这般错误
要改正的话只要把后面那个for循环换成如下程序段就可以了:
for(i=1;i<N;i++)
{
if(*p<a[i])
*p=a[i];
if(*t>a[i])
*t=a[i];
}
如果规定要用指针的话那可以再定义两个中间指针变量应该可以解决
只能说这么多了
太晚了
要睡觉了~~
不然明天第一节课又没得上了
希望我的答案对你有帮助
嘿嘿!!
B. c语言求数组中最大值和最小值及其下标
思路:假定一个数为最大值,如果有个数比假定的最大值还大,那么该数就为最大值。
最小值同理。
使用for循环。
*/
public class MaxMin{
public static void main(String[]args){
int[]array={13,56,45,48,26,55,7,3,9,468,4589,76,4,3,18};//声明数组并赋值
int i=0;
int max=array[0];//最大值
int min=array[0];//最大值
int indexMax=-1;//最大值索引
int indexMin=-1;//最小值索引
//使用for循环判断
for(i=0;i<array.length;i++){
if(array<i>>max){
max=array<i>;
indexMax=i;
}
if(array<i><min){
min=array<i>;
indexMin=i;
}
}
System.out.println("最大值为:"+max+",索引为:"+indexMax);
System.out.println("最小值为:"+min+",索引为:"+indexMin);
}
}
(2)c语言求一个动态数组的最大最小值扩展阅读:
system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()传递,但要注意的是输入斜线时要输入两个,以名C语言当作转义字符处理。
C. C语言,求数组最大最小值
求数组中的最大值和最小值,一般使用假设法,即假设数组的第1个元素为最大值,同时也是最小值,然后遍历数组,找到最大值和最小值。示例如下:
#include<stdio.h>
intmain()
{
inta[]={1,2,3,4,5,6,7,8,9,10};
intmax,min;
max=min=a[0];//假设第1个元素即是最大值也是最小值。
intmax_pos=0,min_pos=0;
//遍历数组,找出数组a中的最大数和最小数
for(intinx=0;inx!=sizeof(a)/sizeof(int);++inx){
if(a[inx]>max)max=a[inx],max_pos=inx;
elseif(a[inx]<min)min=a[inx],min_pos=inx;
}
printf("最大数:%d 最小数:%d
",max,min);
return0;
}
D. 用c语言编写求数组元素最大值和最小值!谢谢各位大佬
1、apply方式,借用Math中的max/min方法实现。
E. C语言编程,多种方法求一个数组里的最大值和最小值。
因为只是找出最大最小值,直接循环每个比较一次就可以。
#include<stdio.h> //挑选法
#define N 10
void main() { int a[N],m,n,i;
for ( i=0;i<N;i++ ) scanf("%d",&a[i]);
m=n=a[0]; for ( i=1;i<N;i++ ) if ( m<a[i] ) m=a[i]; else if ( n>a[i] ) n=a[i];
printf("最大值%d,最小值%d ",m,n);
}
#include<stdio.h> //排序法
#define N 10
void main() { int a[N],i,j,k;
for ( i=0;i<N;i++ ) scanf("%d",&a[i]);
for ( i=0;i<N-1;i++ ) for ( j=i+1;j<N;j++ ) if ( a[i]<a[j] ) {k=a[i];a[i]=a[j];a[j]=k;}
printf("最大值%d,最小值%d ",a[0],a[N-1]);
}
(5)c语言求一个动态数组的最大最小值扩展阅读:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
F. c语言定义max_min求一个数组最大值和最小值,利用调用函数void max_min(int[],int n,int *map,int *minp)
#include<stdio.h>
//max_min函数定义太乱了,应该是这样的:
voidmax_min(inta[],intn,int*maxp,int*minp)
{
inti;
*maxp=a[0];
*minp=a[0];
for(i=1;i<=n-1;i++)
{
if(a[i]>=*maxp)
*maxp=a[i];
elseif(a[i]<*minp)
*minp=a[i];
}
}
intmain()
{
inta[100],n,i,max,min;
printf("pleaseinputn:");
scanf("%d",&n);
printf("pleaseinputnumber:");
for(i=0;i<=n-1;i++)//去掉分号
scanf("%d",&a[i]);
max_min(a,n,&max,&min);//应该是传变量地址,max_min(a,n,maxp,minp);
printf("themaxandminis:%d&%d ",max,min);//maxp,minp没定义,应该是max,min
return0;
}
结果:
G. c语言如何求一个数组的最大值和最小值
data_type
max=0;//定义两个全局变量,max表示最大值
data_type
min=0;//min表示最小值
void
func(data_type
a[],int
n)//传递数组名与数组的大小n
{
max=min=a[0];//初始化
for(int
i=0,i<n,i++)//循环n次
{
if(max<a[i])
max=a[i];//如果当前的a[i]比max大,则max取a[i]
if(min>a[i])
min=a[i];//同理
}
reture;//返回
}
H. C语言求数组最大值最小值
arr[n]这个有问题,不能定义为一个变量n,
int arr[50];//这样定义
I. c语言计算数组的长度,最大最小值 补全程序
int get_len_max_min(int *pnums, int *pmax, int *pmin) {
int *pcur = pnums;
*pmax=*pmin=*pcur;
pcur++;
while(*pcur!=END_MARK ) {
if (*pcur>*pmax) *pmax=*pcur;
if (*pcur<*pmin) *pmin=*pcur;
pcur++;
}
return pcur-pnums;
}