मैं जो चाहता हूं वह सरल कार्यक्रमों के साथ किया जा सकता है, लेकिन मैं इसे पॉइंटर के साथ कैसे कर सकता हूं? मुझे लगता है कि कहीं न कहीं मेरी गलती है।

ये मेरी प्रविष्टियाँ हैं।

3 4 8 1 6 9 7 2 5 2.

यह आउटपुट है।

1.major=0 2.major=0

मेरे कोड।

#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];
            }
        
    }
    
    
}

और त्रुटि स्क्रीन।

[Warning] comparison between pointer and integer
c
1
b.muhendis 8 पद 2020, 16:10

3 जवाब

सबसे बढ़िया उत्तर

यह कोड आपकी मदद कर सकता है:

#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
MED LDN 8 पद 2020, 17:01

चेतावनी सही है, जहाँ आप major1 और major2, की तुलना करते हैं, आपके सामने * (कुल 2 पंक्तियाँ) की कमी है। तो func में आपके सभी संदर्भ *major1 और *major2 होने चाहिए ताकि पॉइंटर के पीछे के मान तक पहुंच सकें।

3
Jonas Berlin 8 पद 2020, 16:14

बस इसी पर रहो

    if(array[i]>*major1) {
        *major2=*major1;
        *major1=array[i];
    }
0
starboy_jb 8 पद 2020, 16:17