В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
аноним4378
аноним4378
30.03.2021 01:46 •  Информатика

Односвязный список имеет следующую структуру узла

typedef struct node {
int value;
struct node *next;
} node;
Напишите функцию find(корень, значение), которая возвращает указатель на узел, имеющий заданное значение. Если такого значения нет, то функция должна возвращать NULL.

#include
#include
typedef struct node {
int value;
struct node *next;
} node;
// определение функции find
...
int main()
{ node *root=NULL;
// root->NULL
add(&root,1);
// root->[1]->NULL
add(&root,2);
// root->[2]->[1]->NULL
node *n1=find(root,1);
if(n1) n1->value=3; // заменим 1 на 3
n1=find(root,1);
if(n1==NULL) printf("NULL\n"); // NULL
}

Показать ответ
Ответ:
2MilkaXD
2MilkaXD
25.09.2022 22:03
Ошибка

В строке  's2:= s2 + s1[i] + s1[i];'

По умолчанию все переменные равны нулю

т.к. вы не задали значение i и вводите эту строку вне цикла for, то получается что вы запрашиваете нулевой элемент массива s1, при том что нумерация начинается с единицы, поэтому и выдаёт ошибку.

"Индекс находится вне границ массива"

Верный код программы

program raf105;

var s1,s2:string;

i:integer;

begin

writeln('Введите строку');

readln(s1);

s2:='';

for i:=1 to length(s1) do

 s2:= s2 + s1[i] + s1[i];

writeln(s2);

end.

0,0(0 оценок)
Ответ:
Andylov
Andylov
04.06.2022 00:38

program raf105;

var a:array[1..100,1..2] of char;

glas,s:string;

i,j,sumglas:integer;

begin

glas:='аеёиоуыэюя'; // Перечисление гласных

for i:=1 to length(glas) do

 a[i,2]:= glas[i]; //Заполнение второй строки для гласных

writeln('Введите строку');

readln(s);

for i:=1 to length(s) do

 a[i,1]:= s[i]; //Заполнение первой строки для введённых букв

for i:=1 to length(s) do

 for j:=1 to length(glas) do

   if a[i,1] = a[j,2] //если символ из строки 1 = символу из строки 2

     then sumglas:= sumglas+1; //Прибавление единицы к счётчику

writeln('В строке ',sumglas,' гласных');

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота