ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

  #2331  
Старый 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);
 
Ответить с цитированием

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

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

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

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

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

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

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

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

sum = 34

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

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

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

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

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

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

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

  #2336  
Старый 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;
}
 
Ответить с цитированием

  #2337  
Старый 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;
}
 
Ответить с цитированием

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

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

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

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

  #2339  
Старый 08.02.2010, 03:05
sledopit2
Новичок
Регистрация: 21.01.2010
Сообщений: 7
Провел на форуме:
9494

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

привет ув. программисты=)опять нужна ваша помощь с лабой.
язык С.
Написать программу, реализует две функции с одинаковыми именами, но разными входными параметрами (перегрузка).
Функция max, которая находит максимальное значение из двух целых чисел i поиск подстроки в строке.

Если можно сделать на подобии этой лабороторной:
Код:
#INCLUDE <iostream.h>
int sogl(char b);
void main()
{char b;
cout<<"vvedite bukvu";
cin>>b;
if(sogl(b)==1) cout<<"soglasnaja";
else cout<<"glasnaja";
}
int sogl(char b)
{
{if(b=='q'||b=='w'||b=='r'||b=='t'||b=='p'||b=='s'||b=='d'||b=='f'||b=='g'||b=='h'||b=='j'||b=='k'||b=='l'||b=='z'||b=='x'||b=='c'||b=='v'||b=='b'||b=='n'||b=='m')
return 1;
else
return 0;
}
}
написал для того ,ибо знайу что вы можете написать и в 5 строк прогу,но препод не верит что я так тоже могу.заранее спасибо

Последний раз редактировалось slesh; 08.02.2010 в 11:02.. Причина: [code]
 
Ответить с цитированием

  #2340  
Старый 08.02.2010, 14:10
SHARA
Участник форума
Регистрация: 26.05.2007
Сообщений: 191
Провел на форуме:
389326

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

Цитата:
Сообщение от sledopit2  
привет ув. программисты=)опять нужна ваша помощь с лабой.
язык С.
Написать программу, реализует две функции с одинаковыми именами, но разными входными параметрами (перегрузка).
Функция max, которая находит максимальное значение из двух целых чисел i поиск подстроки в строке.

Если можно сделать на подобии этой лабороторной:
Код:
#INCLUDE <iostream.h>
int sogl(char b);
void main()
{char b;
cout<<"vvedite bukvu";
cin>>b;
if(sogl(b)==1) cout<<"soglasnaja";
else cout<<"glasnaja";
}
int sogl(char b)
{
{if(b=='q'||b=='w'||b=='r'||b=='t'||b=='p'||b=='s'||b=='d'||b=='f'||b=='g'||b=='h'||b=='j'||b=='k'||b=='l'||b=='z'||b=='x'||b=='c'||b=='v'||b=='b'||b=='n'||b=='m')
return 1;
else
return 0;
}
}
написал для того ,ибо знайу что вы можете написать и в 5 строк прогу,но препод не верит что я так тоже могу.заранее спасибо
Я немного немного не понял условия, типа нахождения наибольшего из двух целых чисел. кароче я набросал на с++ небольшой вариант, где из 5 чисел, которым присвоины значения рандомом выбирается наибольшее и наименьшее для примера
и также отисивается индекс вхождения подстроки в строку. Возьми, что тебе необходимо
Цитата:
/*Написать программу, реализует две функции с одинаковыми именами, но разными
входными параметрами (перегрузка).
Функция max, которая находит максимальное значение из двух целых чисел i
поиск подстроки в строке.*/
#include<iostream>
#include<cstdlib>
using namespace std;
int max(char *sub, char *str);
void max();
int main()
{
// Вхождение подстроки в строке(индекс вхождения)
int index;
setlocale(LC_ALL, "Russian");
index=max("три","один два три чатыре");
cout<<"Индекс вхождения подстроки в строке "<<index<<endl;
//нахождения максимального числа и ну минимального для примера
cout<<"Нахождение максимального и минимального числа: "<<endl;
max();
return 0;
}
int max(char *sub, char *str)
{
int t;
char *p;
char *p2;
for(t=0; str[t]; t++)
{
p=&str[t];
p2=sub;
while(*p2 && *p2==*p){
p++;
p2++;
}
if(!*p2) return t;
}
return -1;
}
void max()
{
setlocale(LC_ALL, "Russian");
int list[4];
int min_value;
int max_value;
int i;
for(i=0; i<4; i++) list[i]=rand();//положим случайные значения
//поиск максимльного значения
max_value=list[0];
for(i=0;i<4; i++)
if(max_value<list[i]) max_value=list[i];
cout<<"Максимальное значение равно: "<<max_value<<endl;
min_value=list[0];
for(i=0;i<4; i++)
if(min_value>list[i]) min_value=list[i];
cout<<"Минимальное значение равно: "<<min_value<<endl;
}
или
Цитата:
находит максимальное значение из двух целых чисел
int i,j;
cin>>i>>j;
if(i>j) cout<<"iбольше j";

Последний раз редактировалось SHARA; 08.02.2010 в 16:33..
 
Ответить с цитированием
Ответ



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



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


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




ANTICHAT.XYZ