HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 06.02.2010, 03:09
XimiK69
Новичок
Регистрация: 02.01.2010
Сообщений: 26
Провел на форуме:
33560

Репутация: 15
По умолчанию

Цитата:
Сообщение от becensed  
с++ не люблю. Вот тебе на Си (алгоритм простой, перепишешь, если что)
Код:
#include <stdio.h>
#include <math.h>

#define n 10

int summ(int a[])
{
    int result = 0;

    for (int i=0; i<=n; i++)
    {
        if(a[i] < 0)
        {
            result = abs(a[i+1]) + abs(a[i+2]);
            break;
        }
    }
    
    return result;
}

void main()
{
    int a[n] = {1,5,11,-5,2,-1,3,2,9,-2};
    printf("Summa = %d", summ(a));
}

//EOF
примерно так.
Не понял твой код, а если отрицательное число стоит в конце массива? То ты своим условием
Код:
abs(a[i+1]) + abs(a[i+2]);
выйдешь за границы массива. Попробуй на этом контр примере запустить программу
Код:
int a[n] = {1,5,11,5,2,1,3,2,9,-2};
И зачем определять n, если можно так
Код:
int n = sizeof(a)/sizeof(int);
 
Ответить с цитированием

  #2  
Старый 06.02.2010, 02:27
becensed
Новичок
Регистрация: 02.12.2009
Сообщений: 16
Провел на форуме:
101734

Репутация: 21
По умолчанию

он просил функцию.
 
Ответить с цитированием

  #3  
Старый 06.02.2010, 02:39
KaE
Новичок
Регистрация: 27.09.2009
Сообщений: 28
Провел на форуме:
404511

Репутация: 0
По умолчанию

Цитата:
Сообщение от becensed  
он просил функцию.
ну да, проглядел(.
 
Ответить с цитированием

  #4  
Старый 06.02.2010, 03:25
becensed
Новичок
Регистрация: 02.12.2009
Сообщений: 16
Провел на форуме:
101734

Репутация: 21
По умолчанию

я нигде не писал, что мой код - это истина в последней инстанции. Выражение "примерно так." это подтверждает.

сделать #define проще и экономичнее.
 
Ответить с цитированием

  #5  
Старый 06.02.2010, 03:30
KaE
Новичок
Регистрация: 27.09.2009
Сообщений: 28
Провел на форуме:
404511

Репутация: 0
По умолчанию

Код, который привел becensed выдает
Summa = 3

По моей проге я получаю

sum = 34

Или я не прав?
 
Ответить с цитированием

  #6  
Старый 06.02.2010, 03:46
XimiK69
Новичок
Регистрация: 02.01.2010
Сообщений: 26
Провел на форуме:
33560

Репутация: 15
По умолчанию

KaE, больше похоже на правду)
 
Ответить с цитированием

  #7  
Старый 06.02.2010, 04:09
becensed
Новичок
Регистрация: 02.12.2009
Сообщений: 16
Провел на форуме:
101734

Репутация: 21
По умолчанию

так стоп. Я понял из-за чего вы на меня все набросились.
Автор изменил условие. Когда я его читал, было примерно так: определить сумму двух последующих элементов, после отрицательного.
 
Ответить с цитированием

  #8  
Старый 06.02.2010, 17:25
KrabKN
Новичок
Регистрация: 22.01.2010
Сообщений: 25
Провел на форуме:
63520

Репутация: 0
По умолчанию

нужно только чтоб подсчитывало отрецатилиные числа
а ета програма подсчинует все числа
на СИ написана

#include <stdio.h>
#define SIZE_N 2
#define SIZE_M 2
int main()
{
int matrix[ SIZE_N ][ SIZE_M ];
int sum;
int i, j;
printf( "\n Enter a matrix with %d rows and %d columns.\n", SIZE_N, SIZE_M );
for ( i = 0; i < SIZE_N; i++ )
{
printf( "\nEnter %d values for the row d: ", SIZE_M, i + 1 );
for ( j = 0; j < SIZE_M; j++ ) scanf( "%d", &matrix[ i ][ j ] );
}
sum = 0;
for ( i = 0; i < SIZE_N; i++ )
for ( j = 0; j < SIZE_M; j++ )
sum += matrix[ i ][ j ];
printf( "\nThe sum = %d\n", sum );
return 0;
}
 
Ответить с цитированием

  #9  
Старый 06.02.2010, 19:44
KrabKN
Новичок
Регистрация: 22.01.2010
Сообщений: 25
Провел на форуме:
63520

Репутация: 0
По умолчанию

а в етой програме мождно допесать чтоб считывала только отрецательные числа?

#include <stdio.h>
#define SIZE_N 2
#define SIZE_M 2
int main()
{
int matrix[ SIZE_N ][ SIZE_M ];
int sum;
int i, j;
printf( "\n Enter a matrix with %d rows and %d columns.\n", SIZE_N, SIZE_M );
for ( i = 0; i < SIZE_N; i++ )
{
printf( "\nEnter %d values for the row d: ", SIZE_M, i + 1 );
for ( j = 0; j < SIZE_M; j++ ) scanf( "%d", &matrix[ i ][ j ] );
}
sum = 0;
for ( i = 0; i < SIZE_N; i++ )
for ( j = 0; j < SIZE_M; j++ )
sum += matrix[ i ][ j ];
printf( "\nThe sum = %d\n", sum );
return 0;
}
 
Ответить с цитированием

  #10  
Старый 07.02.2010, 22:58
KrabKN
Новичок
Регистрация: 22.01.2010
Сообщений: 25
Провел на форуме:
63520

Репутация: 0
По умолчанию

Написать программу, реализует две функции с одинаковыми именами, но разными входными параметрами (перегрузка).
Функция Kol, которая находит количество положительных чисел с п введенных и количество символов в слове.
на с++

Последний раз редактировалось KrabKN; 08.02.2010 в 02:30..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.