❶ c语言,使用指针作为函数参数,写一求数组中最大值和最小指的函数
#include<stdio.h>
voidhanshu(int*arry,intsize,int*m,int*n)
{
*m=arry[0];
*n=arry[1];
for(inti=0;i<size;i++)
{
if(arry[i]>*m)
*m=arry[i];
if(arry[i]<*n)
*n=arry[i];
}
}
intmain(intargc,constchar*argv[]){。
inta[]={1,5,6,2,3,8,9,7,4,5};//定义一个十个数据的数组
intmax;//存放最大值
intmin;//存放皮镇饥最小值
hanshu(a,10,&max,&min);//函数传送数组,并将最大值,最小值的地址传送
printf("Themaxnumberis%d\n",max);
printf("Theminnumberis%d\n",min);
return0;
}
(1)指针找出数组中的最大值c语言扩展阅读:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某旅模一段程序代码;可以燃返定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
❷ 用指针在整型数组中找到最大值c语言
#include<stdio.h>
int main()
{int i,a[100],n,*p=a;
scanf("%d",&n);
for(i=0;i<稿举n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++)
if(a[i]>*p)p=&a[i];
printf("最大值是:a[%d]=%d ",p-a,*p);
氏敬迹歼并getch();
return 0;
}
❸ C语言利用指针变量求出数组的最大值最小值
你的代码的min和max都是指向a[0]的,而*max=a[i]或*min=a[i]都把a[0]改变了,所以达不到目的。这样改——
把*min=a[i];改成min=a+i;或min=&a[i];。
把*max=a[i];改成max=a+i;或max=&a[i];。
❹ 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];
}
如果规定要用指针的话那可以再定义两个中间指针变量应该可以解决
只能说这么多了
太晚了
要睡觉了~~
不然明天第一节课又没得上了
希望我的答案对你有帮助
嘿嘿!!
❺ c语言用指针找出最大值
#include<stdio.h>
#defineN5
intmain()
{
inti,max;
intstr[N],*p;
p=str;
for(i=0;i<N;i++)
scanf("%d",p+i);
for(;p<str+N;p++)
printf("%d",*p);
p=str;//缺少指针重置
max=*p;
for(i=1;i<N;i++)
{
if(max<*(p+i))
max=*(p+i);
}
printf(" %d ",max);
}
您好,很高兴为您解答,流星不死为您答疑解惑
如果本题还有不懂的地方请追问,望采纳我的回答。
祝楼主学习进步。
上面的代码可以直接复制到编译器里,带换行。
❻ c语言中如何用指针在整型数组中找到最大值
#include<stdio.h>
intmain(void)
{
inti,num[10]={0,5,2,18,3,6,15,10,1,7},*p=num;
for(i=1;i<10;i++)
if(num[i]>*p)
p=&num[i];
printf("最大值是:%d ",*p);
return0;
}
❼ C语言中怎样用指针找出一维数组中的最大值和最小值并输出它们的下标
1、新建一个工程和.c文件,并且输入主函数和头文件。
❽ c语言 利用指针实现求数组元素中的最大元素和第二大元素
#include<stdio.h>
#include<stdlib.h>
#define N 10
//12 33 24 23 55 34 45 33 21 34
int max_value(int arr[], int sec_max)
{
int i;
int max;
int size = N;
max = arr[0];
sec_max = arr[0];
for ( i = 0; i < size; i++)
{
if (max < arr[i])
{
sec_max = max;
max = arr[i];
}
if (sec_max < arr[i] && arr[i] < max)
{
sec_max = arr[i];
}
}
if (max == sec_max)
{
sec_max = arr[1];
for (int i = 1; i < size; i++)
{
if (sec_max < arr[i])
{
sec_max = arr[i];
}
}
}
return max;
}
void main()
{
int a[N];
int i, max, second_max;
printf("please input 10 numbers: ");
for ( i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
max = max_value(a, &second_max);
printf("max = %d ", max);
printf("second_max = %d ", second_max);
system("pause");
}
运行效果:
(8)指针找出数组中的最大值c语言扩展阅读:
system()函数用法:
用法:int system(char*command);
system函数已经被收录在标准c库中,可以直接调用。
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
printf("About to spawn and run a DOS command ");
system("dir");
return 0;
}
又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。