मैं जो चाहता हूं वह सरल कार्यक्रमों के साथ किया जा सकता है, लेकिन मैं इसे पॉइंटर के साथ कैसे कर सकता हूं? मुझे लगता है कि कहीं न कहीं मेरी गलती है।
ये मेरी प्रविष्टियाँ हैं।
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
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