На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила раздела
1. Не создавайте несколько одинаковых тем, ибо модератор может расценить их, как спам и удалить все.
2. Для решения задач по GPSS есть отдельная тема. Все задачи по GPSS опубликовывать в этой теме! Перед опубликовыванием вашей задачи просмотрите всю тему, возможно вы сразу найдете решение.
3. Давайте вашим темам ОСМЫСЛЕННЫЕ названия, а также указывайте язык программирования. Пример: [Pascal]:Работа с файлами и записями.
4. Использования тега CODE обязательно при публикации текста программы.

Темы, оформленные с явным игнорированием правил и отсутствием смысла, будут закрыты/удалены!
Вам помогли? Напишите об этом здесь (в портфолио фрилансера)

Фрилансерам:
5. Демпинг цен запрещен (даже если Вы готовы работать бесплатно). Цены обсуждаются в приватном общении. Если вы готовы рещить задачу бесплатно, просто решите ее быстрее, чем возникнет предложение сделать это за деньги.
6. Пользователям, входящим в группу Newbie, запрещается предлагать свои услуги (завуалированно в т.ч.)
7. В посте с предложением выполнить работу, обязательно указывать ссылку на свое портфолио в Отзывы, Благодарности, Портфолио Это правило работает и в том случае, если вы выполняете работу бесплатно.
8. Реклама (даже завуалированная) своих фриланских сайтов запрещена

Нарушение данных пунктов влечет до RO или БАНА (при неоднократом)
Модераторы: ttiger, mikefreelance, Rust
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
    > помогите пожалуйста написать программы на языке си.
      я просто проболел и все лекции с обьяснениями пропустил. а программы надо как то сдавать. можете помочь?
      1)Дано натуральное число, в котором все цифры различны. Определить:
      а) порядковые номера двух его максимальных цифр, считая номера: от конца числа; от начала числа;
      2)Среди чисел 1,1+1/2,1+1/2+1/3, ... найти первое, большее числа n. :wub:
        Для второго: можно в лоб, а можно, используя: Сумма = ln(k) + 0,577215665... Вам как?
          Цитата Славян @


          я не то скопировал. просто. я сам его сделал ещё давно. но все равно спасибо
            Первое осталось? Оно то хоть то? :)
              [quote=Славян,1524767668,3767979][/q
              да первое то) это все в код блок надо сделать но он у меня везде просто ошибки выдает

              Добавлено
              [quote=Славян,1524760642,3767971][/quote]
              Дано натуральное число n. Вычислить:
              а)
              1/sin1+1/sin1+sin2+...+1/sin1+...+ sin n

              вот такое задание
                Что-то со вторым я опять последовательность не распознал. Так:
                (sin1 + 1/sin1) + (sin2 + 1/sin1) + (sin3 + 1/sin1) + ...
                или иное?

                Добавлено
                Хм-м... Или там k раз идёт 1/sin1 ? Так:
                (1/sin1 + 1/sin1 + sin2) + (1/sin1 + 1/sin1 + 1/sin1 + sin3) + ... + (1/sin1 + ...(N раз)... + 1/sin1 + sinN) ?
                  Цитата Славян @
                  1/sin1+1/sin1+sin2+...+1/sin1+...+ sin n

                  ну она вот такая
                  1/(sin(1)) + 1/(sin(1)+sin(2)) + ... + 1/(sin1(+)...+ sin(n))
                  там сборник заданий по програмированию златопольский. 5.93а если так легче будет
                  Сообщение отредактировано: alex____666 -
                    Первое можно через строки провернуть. Схема такая:
                    ExpandedWrap disabled
                      #include <stdio.h>
                      int main()
                      {
                       long n=360521;     /* число (надо бы вводить?) */
                       char bufer[12];    /* буфер для числа */
                       int myMax1=-1, i, len, posI;
                       itoa( n, bufer, 10);   /* переводим число в строку, 10-ичная система счисления) */
                       len = strlen( bufer );
                       for( i=0; i<len; i++)
                          if( bufer[i]-'0' > myMax ) myMax = bufer[i]-'0', posI = i;
                       printf("pos=%d", posI); /* пишем положение старшей цифры */
                       return(0);
                      }
                      Цитата Славян @
                      if( bufer[i]-'0' > myMax ) myMax = bufer[i]-'0', posI = i;


                      ну да. принцип я понял. но вот эта строка что в ней? потому чо тут выдает ошибку
                      if( bufer[i]-'0' > myMax ) myMax = bufer[i]-'0', posI = i;
                        Цитата alex____666 @
                        ну она вот такая
                        1/(sin(1)) + 1/(sin(1)+sin(2)) + ... + 1/(sin1(+)...+ sin(n))
                        А-а! Понятно! Кстати, неизвестно же, что ни на каком шаге знаменатель в ноль не обернётся!? Это так, к слову.
                        Можно так(кусок):
                        ExpandedWrap disabled
                          #include <math.h>
                          int main()
                          {
                           int i, n=6; /* какова длина цепи */
                           double sum=0, sinS=0; /* sinS = сумма синусов */
                           for( i=1; i<=n; i++)
                              sinS += sin(i), sum += 1/sinS;
                           return printf("%f", sum);
                          }


                        Добавлено
                        Цитата alex____666 @
                        вот эта строка что в ней? потому чо тут выдает ошибку
                        if( bufer[i]-'0' > myMax ) myMax = bufer[i]-'0', posI = i;
                        А напишите, что за ошибка? Мож так сканает:
                        ExpandedWrap disabled
                          if( (int)(bufer[i]-'0') > myMax ) { myMax = (int)(bufer[i]-'0'), posI = i; }


                        Добавлено
                        В той строке берётся символ, вычитается код символа ноль (получая настоящее машинное число), сравнивается с числом в памяти, записывается (при удаче) в переменную=память и положение (порядковый номер) большего символа тоже записывается.
                          Цитата Славян @

                          Process terminated with status 1 (0 minute(s), 0 second(s))
                          1 error(s), 5 warning(s) (0 minute(s), 0 second(s))
                          вот ошибка
                          соре не то скопировал опять саму ошибку он не дает скопировать
                          Сообщение отредактировано: alex____666 -
                            Хм-м... возможно он беспокоится, что захода в if не будет и posI останется непроинициализированной. Тогда надо изменить там так:
                            ExpandedWrap disabled
                              int myMax1=-1, i, len, posI=0;


                            Добавлено
                            Ну а вообще, надо ж stdlib!
                            ExpandedWrap disabled
                              #include <stdio.h>
                              #include <stdlib.h>
                              #include <string.h>
                              int main()
                              {
                               long n=360521;     /* число (надо бы вводить?) */
                               char bufer[12];    /* буфер для числа */
                               int myMax1=-1, i, len, posI=0;
                               itoa( n, bufer, 10);   /* переводим число в строку, 10-ичная система счисления) */
                               len = strlen( bufer );
                               for( i=0; i<len; i++)
                                  if( (int)(bufer[i]-'0') > myMax ) { myMax = (int)(bufer[i]-'0'), posI = i; }
                               printf("pos=%d", posI); /* пишем положение старшей цифры */
                               return(0);
                              }
                              Цитата Славян @

                              да именно так. он бееспокоится что myMax является не обьявленной и пишет "сначала используйте эту функцию"
                              Сообщение отредактировано: alex____666 -
                                А! Косяк мой, единицу забыл!
                                ExpandedWrap disabled
                                  #include <stdio.h>
                                  #include <stdlib.h>
                                  #include <string.h>
                                  int main()
                                  {
                                   long n=360521;     /* число (надо бы вводить?) */
                                   char bufer[12];    /* буфер для числа */
                                   int myMax1=-1,myMax2=-1, i, len, posI=0, posI2=0;
                                   itoa( n, bufer, 10);   /* переводим число в строку, 10-ичная система счисления) */
                                   len = strlen( bufer );
                                   for( i=0; i<len; i++)
                                      if( (int)(bufer[i]-'0') > myMax1 ) { myMax1 = (int)(bufer[i]-'0'), posI = i; }
                                   for( i=0; i<len; i++)
                                      if( (int)(bufer[i]-'0') > myMax2 && (int)(bufer[i]-'0')!=myMax1 ) { myMax2 = (int)(bufer[i]-'0'), posI2 = i; }
                                   printf("pos=%d", posI); /* пишем положение старшей цифры */
                                   printf("pos2=%d", posI2); /* пишем положение старшей цифры */
                                   return(0);
                                  }
                                  Цитата Славян @

                                  так, а зачем мы в конце 2 раза обявляем положение старшей цифры7

                                  Добавлено
                                  Цитата Славян @

                                  так, а зачем мы в конце 2 раза обьявяем положение старшей цифры?
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (3) [1] 2 3  все


                                  Рейтинг@Mail.ru
                                  [ Script Execution time: 0,1489 ]   [ 17 queries used ]   [ Generated: 21.10.19, 10:40 GMT ]