❶ 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函數可以改變控制台的前景色和背景,具體參數在下面說明。