c语言 用指针求最大值

作者&投稿:贰裘 (若有异议请与网页底部的电邮联系)
c语言 用指针求最大值~

以下是使用指针,求10个数中的最大值及其位置#includevoid main(){ int a[10]; int i,row,max; for(i=0;i<9;i++) { scanf("%d",a+i);//a+i代表&a[i] } for(i=0,max=*a,row=i;i<9;i++) { if(max<*(a+i))//*(a+i)代表a[i] { void swap(int *a,int *b); swap(&max,a+i); row=i; } } printf("%d,%d
",row,max);}void swap(int *pa,int *pb){ int tmp; tmp=*pa; *pa=*pb; *pb=tmp;}

#include#define N 5int main(){int i,max;int str[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);}您好,很高兴为您解答,流星不死为您答疑解惑
如果本题还有不懂的地方请追问,望采纳我的回答。
祝楼主学习进步。
上面的代码可以直接复制到编译器里,带换行。

第一空:max(&a, &b)

第二空:*p

第三空:return (*x > *y) ? x : y;

完整代码和运行结果如下:

输入3,5(注意中间必须有逗号,),成功输出了较大值5

附源码:

#include <stdio.h>

int main() {

    int *max(int *, int *), *p;

    int a, b;

    printf("请输入两个数并用,分隔");

    scanf("%d,%d", &a, &b);

    p = max(&a, &b);

    printf("两个数中的较大者是%d
", *p);

    return 0;

}

int *max(int *x, int *y) {

    return (*x > *y) ? x : y;

}




武胜县18332316552: c语言 用指针求最大值 -
宥狐可谱: 代码量少,还让你容易理解指针*,&的使用~#include<stdio.h> main() { int i; int a[10],*p; printf("please input the num\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(p=&a[0],i=0;i<10;i++) { if(a[i]>*p) p=&a[i]; } printf("the max num is: %d\n",*p); getch(); }

武胜县18332316552: c语言中如何用指针在整型数组中找到最大值 -
宥狐可谱: 展开全部#include int main(void) { int i,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\n",*p); return 0; }

武胜县18332316552: C语言用指针求最大值! -
宥狐可谱: 这个问题我知道!ntMax(int*p,intn){inti,max;max=*p;for(i=1;p+i{if(*(i+p)>max){max=*p;//这里的*p还是第一个数没有变赋值必须也为:*(p+i)}}returnmax;}

武胜县18332316552: C语言指针求最大值问题 -
宥狐可谱: 你看maxToFront函数能不能这样写:用一个变量来存整数组的最大值,一个存最大值的下标,遍历玩整个数组之后从最大值的下标开始,前面的所有的数都向后移动一个位置,最后再把最大值赋给数组的第一个元素,void maxToFront(int *a, int ...

武胜县18332316552: C语言,使用指针,求10个数中的最大值及其位置 -
宥狐可谱: #include<stdio.h> void main() {int a[10];int i,row,max;for(i=0;i<9;i++){scanf("%d",a+i);//a+i代表&a[i]}for(i=0,max=*a,row=i;i<9;i++){if(max<*(a+i))//*(a+i)代表a[i]{void swap(int *a,int *b);swap(&max,a+i);row=i;}}printf("%d,%d\n",...

武胜县18332316552: 在C语言中,输入十个数,利用指针编程判断最大值 -
宥狐可谱: int main() { int a[10],max=0,* p=a; printf(“please input 10 num:\n”); input(a); for(i=0;i<10;i++) if(*p>=max) max=(*p)++; printf("the max num is:%d",max); return 0; } input(int x[]) { int i; for(i=0;i<10;i++) scanf("%d",*(x+i)); }

武胜县18332316552: 用C语言的指针求二维数组中元素中的最大值.(求最大的元素值) -
宥狐可谱: 二楼真相,你的错误在于判断数组越界是用的(*p)!='\0'有误,又不是字符串,调试的时候编译器初始化了内存a以外的是0,所以能正确计算,但是真正运行的时候a以后的内存存的都是随机数,所以你的结果每次都不一样

武胜县18332316552: 关于c语言中 用指针求最大值的问题 -
宥狐可谱: 沙发己把主要错误说出来了,我把完整代码给你写下. 输出最大是99,为什么不是100,因为你写入文件时是0到100,那样有101个,但你定义的数组为100个元素,照你最后的循环也就是取最大值,只能取100个,第100个就是99,或许这是你...

武胜县18332316552: 用C语言编写用主调函数中用函数指针调用最大值函数 -
宥狐可谱: 先随便写个最大值函数 int max(int x,int y) {return(x>y?x:y); } 在主函数中,void main() {int (*p)(int, int);int a,b; int maxnum;p=max;scanf("%d%d",&a,&b);maxnum=(*p)(a,b);printf("%d",maxnum); getchar(); }

武胜县18332316552: 用指针在整型数组中找到最大值c语言 -
宥狐可谱: #include<stdio.h> #define len 80 int main() {int s[len], i;int *pMax, *pMin;for (i = 0; i < len; i++) {scanf ("%d", &s[i]);}i = 0;pMax = &s[0];pMin = &s[0];while (i < len) {if (*pMax < s[i])pMax = &s[i];if (*pMin > s[i])pMin = &s[i];i++;}...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网