С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для Генрисон
4 / 3 / 1
Регистрация: 30.10.2012
Сообщений: 349

В файл out.txt записать те числа, которые больше своих соседей

10.02.2013, 17:24. Показов 2288. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан ряд чисел в файле in.txt : 0 2 -3 4 1 8 7 10
Нужно в файл out.txt записать те числа,которые больше своих соседей.(здесь это 2,8,10)
Подскажите,каким образом можно сделать сравнение.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2013, 17:24
Ответы с готовыми решениями:

Удалить из массива числа, которые равны среднему арифметическому своих соседей
#include <stdio.h> #include<locale.h> /*Программа должна убирать число которое равно среднему арифмет. своих соседей example ...

Найти количество вещественных чисел, которые больше своих "соседей"
Даны натуральное число n и вещественные числа Х1 X2, ..., Xn. Найти количество вещественных чисел, которые больше своих...

Циклы: определить, сколько элементов последовательности больше своих соседей
Дано 20 вещественных чисел. Определить, сколько из них больше своих «соседей», то есть предыдущего и последующего значений.

8
 Аватар для Belkin-VD
158 / 157 / 81
Регистрация: 31.12.2012
Сообщений: 254
10.02.2013, 18:03
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Только еще и 4 тоже больше чем соседи:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
 
   double a[8];
   int i=0;
   char *fname="in.txt",*fnameout="out.txt",t[5],*stopstring;
   
   FILE *r;
   r = fopen(fname, "r");
   
   printf("\nRead file: %s",fname);
   printf("\n");
   
   while ((fgets(t,5,r))!=NULL) {
      a[i]=strtod(t,&stopstring);
      printf(" %.0f",a[i]);
      i++;
   }
   
   fclose(r);
   printf("\n\nEti elementy bol`she svoix sosedey:\n\n");
   
   FILE *w;
   w = fopen(fnameout, "a");
   
   for(i=0; i<8; i++) {
      if(a[i] > a[i+1] && i==0) {
         printf("\n%.0f",a[i]);
         fprintf(w, "\n%.0f", a[i]);
      }
      else if(a[i] > a[i-1] && i==7) {
         printf("\n%.0f",a[i]);
         fprintf(w, "\n%.0f", a[i]);
      }
      else if(a[i] > a[i+1] && a[i] > a[i-1]) {
         printf("\n%.0f",a[i]);
         fprintf(w, "\n%.0f", a[i]);
      }
   }
   
   printf("\n");
   fclose(w);
   
   return 0;   
}
Миниатюры
В файл out.txt записать те числа, которые больше своих соседей  
0
10.02.2013, 18:12

Не по теме:

Цитата Сообщение от Генрисон Посмотреть сообщение
0 2 -3 4 1 8 7 10
//...
(здесь это 2,8,10)
а 4?

0
 Аватар для Генрисон
4 / 3 / 1
Регистрация: 30.10.2012
Сообщений: 349
10.02.2013, 18:19  [ТС]
Belkin-VD,скажите пожалуйста,если мы не знаем заранее,сколько чисел в файле in.txt,тоесть их там N,то сильно ли усложнится код?

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


а 4?

простите,четвёрку не увидел.
0
 Аватар для Belkin-VD
158 / 157 / 81
Регистрация: 31.12.2012
Сообщений: 254
10.02.2013, 18:32
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ну в общем думаю нет.
Если прям с N, Тоесть незнаешь сколько их будет то тогда с динамическим выделением будет решение(malloc + free), т.к. ты не будешь знать под сколько выделять массив.

Но я предлагаю так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
 
   double a[50];
   int i=0,j=0;
   char *fname="in.txt",*fnameout="out.txt",t[5],*stopstring;
   
   FILE *r;
   r = fopen(fname, "r");
   
   printf("\nRead file: %s",fname);
   printf("\n");
   
   while ((fgets(t,5,r))!=NULL) {
      a[j]=strtod(t,&stopstring);
      printf(" %.0f",a[j]);
      j++;
   }
   
   fclose(r);
   printf("\n\nEti elementy bol`she svoix sosedey:\n\n");
   
   FILE *w;
   w = fopen(fnameout, "a");
   
   for(i=0; i<j; i++) {
      if(a[i] > a[i+1] && i==0) {
         printf("\n%.0f",a[i]);
         fprintf(w, "\n%.0f", a[i]);
      }
      else if(a[i] > a[i-1] && i==7) {
         printf("\n%.0f",a[i]);
         fprintf(w, "\n%.0f", a[i]);
      }
      else if(a[i] > a[i+1] && a[i] > a[i-1]) {
         printf("\n%.0f",a[i]);
         fprintf(w, "\n%.0f", a[i]);
      }
   }
   
   printf("\n");
   fclose(w);
   
   return 0;   
}
Программа будет считывать до тех пор пока есть строки в файле, а проверять от 1 до последней считанной строки.
Программа будет работать, если строк в файле с числами не более 50.
Если хочешь больше поставь

P.S. 4 я учел
Изображения
 
1
 Аватар для Генрисон
4 / 3 / 1
Регистрация: 30.10.2012
Сообщений: 349
10.02.2013, 19:03  [ТС]
Belkin-VD,спасибо Вам большое!

Добавлено через 3 минуты
И можете пояснить вот эти строки:
Цитата Сообщение от Belkin-VD Посмотреть сообщение
C
1
while ((fgets(t,5,r))!=NULL) { a[j]=strtod(t,&stopstring); printf(" %.0f",a[j]); j++; }
0
 Аватар для Belkin-VD
158 / 157 / 81
Регистрация: 31.12.2012
Сообщений: 254
10.02.2013, 19:12
C
1
while ((fgets(t,5,r))!=NULL) { a[j]=strtod(t,&stopstring); printf(" %.0f",a[j]); j++; }
Открываем цикл и проходим до тех пор, пока не закончатся строки.
fgets() - считывает построчно от 1 и до последней строки.
a[] - масси объявленный как вещественный.
Вот ты взял допустим третью строку: число -3
но ты взял как символ, и тут вступает в дело функция strtod.
Функция позволяет преобразовать символ числа в вещественное число, причем если это возможно, если это будет не возможно то преобразуется только та часть взятого выражения которая состоит целиком из чисел, указатель укажет на первую встречную лексему.
Суть в общем не в этом.
Берешь символ - strtod преобразуешь в число вещественное и записываешь в ячейку массива.
0
 Аватар для Генрисон
4 / 3 / 1
Регистрация: 30.10.2012
Сообщений: 349
10.02.2013, 19:19  [ТС]
Belkin-VD,спасибо огромное) очень благодарен! Очень хорошо объяснили и я всё понял. Просто наш преподаватель работает по такому принципу-он дает на уроке основы какие-то и рассказывает теорию,а что бы написать уже что-то дома,мы должны по его словам по работать сами довольно много,он считает,что это хорошо.
0
 Аватар для Belkin-VD
158 / 157 / 81
Регистрация: 31.12.2012
Сообщений: 254
10.02.2013, 19:25
Может быть у него не очень много времени на практику...
Я благодарен тем, кто меня обучал и обучает. Тут много от методики преподавателя зависит, хотя в большей степени конечно от студента
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2013, 19:25
Помогаю со студенческими работами здесь

Дано n вещественных чисел. Определить, сколько из них больше своих соседей
&quot;Дано n вещественных чисел. Определить сколько из них больше своих соседей, т.е. предыдущего и последующего.&quot; помогите пожалуйста

Определить, сколько элементов массива Х(40) больше своих соседей (слева и справа) как минимум вдвое
Определить сколько элементов массива Х(40) больше своих соседей( слева и справа) как минимум вдвое( учесть что у крайних элементов есть...

Записать в массив С все элементы из массивов А и В, которые больше числа Р
#include &lt;stdio.h&gt; int main() { int a; int b; int c; int p; int j,i; printf(&quot;Vvedi p=&quot;); ...

Массив: Определить, сколько из элементов массива больше своих "соседей"...
Заданные действительные числа x1, x2,. . . , X25. Определить, сколько из них больше своих &quot;соседей&quot;, то есть предыдущего и...

Записать в файл file.txt таблицу умножения числа 5
Записать в файл file.txt таблицу умножения числа 5. Самім легким способом


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru