Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Найти максимальный элемент списка С++

Влад Тимченко Мастер (1235), закрыт 8 лет назад
Дополнен 8 лет назад
struct sp{
int inf;
struct sp *ptr;
};
int main(){
setlocale(LC_ALL, "");
sp* sptr;
sp* nptr;
sptr=NULL;
int a,n,kil;
printf("Ââåäiòü ðàçìið ñïèñêó: ");
scanf("%d",&n);
int mas[n];
printf("Çãåíåðîâàíèé çâ'ÿçàíèé ñïèñîê: \n");
for(int i=0;iinf=a;
nptr->ptr=sptr;
sptr=nptr;
}}
while(nptr!=NULL){
printf("%d \n",nptr->inf);
nptr=nptr->ptr;
}
int max=-20;
while(nptr!=NULL)
{
if(nptr->inf>max)
max=nptr->inf;
nptr=nptr->ptr;
}
printf("\nMAX: %d",max);
getch();
}
Дополнен 8 лет назад
int max=-20;
while(nptr!=NULL)
{
if(nptr->inf>max)
max=nptr->inf;
nptr=nptr->ptr;
}
printf("\nMAX: %d",max);

Проблема с самим поиском
Лучший ответ
Зло Просветленный (38829) 8 лет назад
поиск максимума уже реализован:
while(nptr!=NULL)
{
if(nptr->inf>max)
max=nptr->inf;
nptr=nptr->ptr;
}

осталось только начальное значение правильно проинициализировать и не забыть перед вызовом к началу списка вернуться
Влад ТимченкоМастер (1235) 8 лет назад
не удосужишься объяснить мне о великое просветленно зло как это сделать? (только кодом, а не словами)
я в списках нуб (
Зло Просветленный (38829) ну, я бы рекоммендовал во всех циклах не базовай указатель гонять, а временный, т. е. перед while-ами писать sp* tmpPtr1 = nptr; while( tmpPtr ) и т. д. тогда возвращаться никуда не надо. а инициализировать надо первым элементом max = nptr->inf; а не мистическим -20
Остальные ответы
maks Мудрец (10952) 8 лет назад
Это невозможно не только читать, но и понимать. Код ужасно написан. Не надо пихать все в майн.
скинь в ideone
Влад ТимченкоМастер (1235) 8 лет назад
я со списками знаком неделю, что ты ожидал?
maks Мудрец (10952) все равно дай ссылку на нормально отформатированный код
Похожие вопросы