首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用指针找到10个数字中最大的两个?

如何用指针找到10个数字中最大的两个?
EN

Stack Overflow用户
提问于 2020-12-08 21:10:31
回答 3查看 63关注 0票数 1

我想要的东西可以用简单的程序来实现,但是我怎么才能用指针来实现呢?我想我在什么地方出了错。

这些是我的条目。

代码语言:javascript
复制
3 4 8 1 6 9 7 2 5 2.

它是输出。

代码语言:javascript
复制
1.major=0 2.major=0

我的密码。

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

void func(int*major1,int*major2);
int main() {
    int major1,major2;
    func(&major1,&major2);
    printf("1.major=%d 2.major=%d",major1,major2);

    return 0;
}
void func(int*major1,int*major2){
    int array[10],i;
    
    *major1=0;
    *major2=0;  
    for(i=0;i<10;i++){
        printf("%d.number",i+1);
        scanf("%d",&array[i]);
        if(array[i]>major1){
            *major2=*major1;
            *major1=array[i];
            
            
        }
        else if(major2>major1) {
            *major2=array[i];
            }
        
    }
    
    
}

和错误屏幕。

代码语言:javascript
复制
[Warning] comparison between pointer and integer
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-08 22:01:53

此代码可以帮助您:

代码语言:javascript
复制
#include <stdio.h>

void func(int*major1,int*major2);

int main()
{
    int major1,major2;
    func(&major1 , &major2);
    return 0;
}

void func(int *major1,int *major2)
{
     int array[10];
    *major1=0,*major2=0;

    for(int i=0;i<10;i++)
    {
        printf("%d.number :",i+1);
        scanf("%d",&array[i]);
        if(array[i]>*major1)
        {
             *major2=*major1;
             *major1=array[i];
        }
        if(array[i]>*major2&&*major1>array[i])
        {
            *major2=array[i];
        }
    }
    
    for(int i=0;i<10;i++)
    {
        if(array[i]>*major2&&*major1>array[i])
        {
              *major2=array[i];
        }
     }
    printf("\nThe first biggest number in this array is :%d",*major1);
    printf("\nThe second biggest number in this array is :%d\n",*major2);
}
票数 -2
EN

Stack Overflow用户

发布于 2020-12-08 21:14:37

警告是正确的,在比较major1major2,的行上,前面缺少* (总共2行)。因此,您在func中引用的所有内容都应该是*major1*major2,以便访问指针后面的值。

票数 3
EN

Stack Overflow用户

发布于 2020-12-08 21:17:12

保持这一点

代码语言:javascript
复制
    if(array[i]>*major1) {
        *major2=*major1;
        *major1=array[i];
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65199591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档