Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите доделать прогу, Масивы.функции 
:(
    Опции темы
NEWLOGIN3
Дата 25.5.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.5.2008

Репутация: нет
Всего: нет



  

Найти сумму элементов строк с отрицательными элементами на главной диагонали. квадратной матрици порядка n.

#include <stdio.h>
#include <conio.h>

main ()
{
 int n, j,i;
 int B[10][10];
 int C[10];

 void input(int a,int matr[10][10]);
 int sum (int a, int matr[10][10]);

 clrscr();
 printf ("“Введите порядок матрцы\n");
 scanf ("%d",&n);
 input (n,B);
 for (i=0; i<n; i++)
 { for(j=0;j<n;j++)
     if(i==j)
     if(B[i][j]<0)
    C[j]=sum(n,B);
    printf("сумма елементов %d строки ровна : %d\n",j+1,C[j]);
 }
}

 int sum(int a, int matr[10][10])
 {
 int i,j,k=0;

    for (j=0;j<a;j++)
      k+=matr[i][j]  ;

    return k;
 }

 void input(int a,int matr[10][10])
 {int i,j;
     for (i=0; i<n; i++)
    for (j=0; j<n; j++)
       scanf ("%d",&matr[i][j]);
 }


Это сообщение отредактировал(а) NEWLOGIN3 - 25.5.2008, 22:07
PM MAIL   Вверх
rrrFer
Дата 25.5.2008, 18:51 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



Бред какой то, напиши по-русски?

Это сообщение отредактировал(а) rrrFer - 25.5.2008, 18:52
PM MAIL WWW ICQ   Вверх
bronislav
Дата 25.5.2008, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: 2
Всего: 3



Примерно так?

Код

#include <stdio.h>
#include <malloc.h>

int main ()
{
    int size;
    printf("Введите размер матрицы: ");
    scanf("%d",&size);
    int **matrix = (int**)malloc(sizeof(int*)*size);
    for(int i = 0; i < size; i++)
        matrix[i] = (int*)malloc(sizeof(int)*size);
    
    printf("Ввод матрицы:");
    for(int i = 0; i < size; i++)
        for(int j = 0; j < size; j++)
            scanf("%d",&matrix[i][j]);
    
    printf("Суммируем....\n");
    int sum = 0;
    for(int i = 0; i < size; i++)
    {
        if( matrix[i][i] < 0 )
            for(int j = 0; j < size; j++)
                sum += matrix[i][j];
    }
    printf("Результат: %d\n",sum);
}




--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
rrrFer
Дата 25.5.2008, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



если я правильно понял украинский то так:
Код

#include <stdio.h>
#include <stdlib.h>
main (){
    int n,j,i,**B,s;
    printf ("n = \n");
    scanf ("%d",&n);
    B=new int*[n];
    for(i=0;i<n;i++){
        B[i]=new int[n];
        for(j=0;j<n;j++)
            scanf("%d",&B[i][j]);
    }
    for(i=0;i<n;i++){
        if(B[i][i]<=0){
            for(j=0,s=0;j<n;j++)
                s+=B[i][j];
            printf("S[ %d ]= %d\n",i+1,s);
        }
    }system("pause");
}

bronislav
не заметил, что вы уже ответили smile

Это сообщение отредактировал(а) rrrFer - 25.5.2008, 19:09
PM MAIL WWW ICQ   Вверх
bronislav
Дата 25.5.2008, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: 2
Всего: 3



rrrFer, Ну раз уж использовать C, то насерно malloc юзать надо. Хотя в услови этого не было, то хз.

А вообще я раньше успел  smile 



--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Mephisto
Дата 25.5.2008, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Код

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

class Loader{
public:
    explicit Loader():row(0){}
    void operator()(vector<int>& AVal){
        cout<<"Row:"<<row<<endl;
        for_each(AVal.begin(), AVal.end(), Reader());
        ++row;
    }
protected:
    int row;
    struct Reader{
        void operator()(int& Val){cin>>Val;}
    };
};

class summator{
public:
    explicit summator():row(0), Summ(0){}
    void operator()(vector<int>& AVal){
        if(AVal[row]<0)Summ+=AVal[row];
        ++row;
    }
    int Summ;
protected:
    int row;
};

int main(int argc, char** argv){
    int n; //Размер матрицы
    cout<<"Введите размер матрицы:";
    cin>>n;

    vector<vector<int> > vec(n, vector<int>(n));

    summator LS;
    for_each(vec.begin(), vec.end(), Loader());//Вводим значения матрицы
    LS=for_each(vec.begin(), vec.end(), LS);//собственно расчет

    cout<<"Сумма="<<LS.Summ<<endl;

  return 0;
}



Добавлено через 1 минуту и 41 секунду
А я незаметил что вы оба ответили  smile 
PM   Вверх
NEWLOGIN3
Дата 25.5.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.5.2008

Репутация: нет
Всего: нет



Спасибо большое ребята за помощь,побольше бы таких как вы, Но не могли бы вы подсказать что именно в моем варианте не так ,может я ошибаюсь,но у меня такое ощущение что в моем примере для полного счасть не хватает какой-то мелочи(скорее всего что-то не так в обьявлении параметров функции) , ваши работы класные, но у меня их не примут т.к. эта работа по теме Функции ,а что касается варианта господина MEPHISTO то мне в жизни не поверят что это я написал т.к. я не совсем шарю что там происходит ,тем более что мы учим именно си а не си++.(кстати,условие переведено на русский ) 
PM MAIL   Вверх
mes
Дата 25.5.2008, 23:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250




Цитата(NEWLOGIN3 @  25.5.2008,  22:18 Найти цитируемый пост)
 Но не могли бы вы подсказать что именно в моем варианте не так ,может я ошибаюсь,но у меня такое ощущение что в моем примере для полного счасть не хватает какой-то мелочи


Цитата(NEWLOGIN3 @  25.5.2008,  17:29 Найти цитируемый пост)
int i,j,k=0;

    for (j=0;j<a;j++)
      k+=matr[i][j]  ;


в этом участке всегда считается сумма элементов 0й строки в кол-ве равном а

Цитата(NEWLOGIN3 @  25.5.2008,  17:29 Найти цитируемый пост)
. квадратной матрици порядка n.


некрасиво при таком задании исполэзовать статический  массив:
Цитата(NEWLOGIN3 @  25.5.2008,  17:29 Найти цитируемый пост)
int B[10][10];




--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0725 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.