Форум: Форум C++Разное
Новые темы: 00
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Главная диагональ
 
 автор: OJLYA   (11.01.2008 в 07:57)   письмо автору
 
 

Народ, помогите!!!!! Обнулить элементы над главной диагональю, если их сумма меньше суммы элементов под главной диагональю. В противном случае обнулить элементы под главной диагональю.

  Ответить  
 
 автор: Фитч   (11.01.2008 в 08:34)   письмо автору
 
   для: OJLYA   (11.01.2008 в 07:57)
 

А в чем, собственно сложность? У меня вот такой вариант работает:

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

int main(void)
{
 int matrix[10][10];
 int n, sumu = 0, suml = 0;
 
 printf("Enter N: ");
 scanf ("%d", &n);
 
 if ( (n < 0) || (n > 9) )
 {
  printf("Invalid N value!\n");
 }
 else
 {
  printf("Enter matrix:\n");
  for(int i = 0; i < n; i++)
  {
   for(int j = 0; j < n; j++)
   {
    scanf("%d", &(matrix[i][j]));
    
    if (j > i) 
      sumu += matrix[i][j];
    else if (j < i)
      suml += matrix[i][j];
   }
  }
  
  if (sumu < suml)
  {
   for(int i = 0; i < (n-1); i++)
   {
    for(int j = (i+1); j < n; j++)
    {
     matrix[i][j] = 0;
    }
   }
  }
  else
  {
   for(int i = 1; i < n; i++)
   {
    for(int j = 0; j < i; j++)
    {
     matrix[i][j] = 0;
    }
   }
  }
  // просто вывод матрицы для проверки, можно убрать
  for(int i = 0; i < n; i++)
  {
   for(int j = 0; j < n; j++)
   {
    printf("%d ", matrix[i][j]);
   }
   printf("\n");
  }
 }
 
 getch();
 
 return 0;
}

  Ответить  
 
 автор: zzDimazz   (11.01.2008 в 12:45)   письмо автору
 
   для: Фитч   (11.01.2008 в 08:34)
 


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

int main(void)
{
 int matrix[10][10];
 int n=-1, sumu = 0, suml = 0;

сlrscr();
 while( (n < 0) || (n > 11) )
{
 printf("Enter n: ");
 scanf("%d", &n);
 }
  for(int i = 0; i < n; i++)
  {
   for(int j = 0; j < n; j++)
   {
    //scanf("%d", &(matrix[i][j]));
    matrix[i][j]=(10-(-10))random(10)/10. -10; //Диапазон чисел от -10 до 10
    
    if (j > i) 
      sumu += matrix[i][j];
    else if (j < i)
      suml += matrix[i][j];
   }
  }
  
  if (sumu < suml)
  {
   for(int i = 0; i < (n-1); i++)
   {
    for(int j = (i+1); j < n; j++)
    {
     matrix[i][j] = 0;
    }
   }
  }
  else
  {
   for(int i = 1; i < n; i++)
   {
    for(int j = 0; j < i; j++)
    {
     matrix[i][j] = 0;
    }
   }
  }
  // просто вывод матрицы для проверки, можно убрать
  for(int i = 0; i < n; i++)
  {
   for(int j = 0; j < n; j++)
   {
    printf("%d ", matrix[i][j]);
   }
   printf("\n");
  }
 }
 
 getch();
 
 return 0;
}

так как я думаю вводить до 100 элементов в матрицу напряжно как то а рандомить интерестнее,
ну еще и проверка ввода - пока число не будет в диапазоне от 1 до 10

  Ответить  
 
 автор: Фитч   (11.01.2008 в 14:22)   письмо автору
 
   для: zzDimazz   (11.01.2008 в 12:45)
 

to zzDimazz:
1) Просто это типовая школьная задача, а там обычно (по крайней мере согласно моему опыту) просят делать ручной ввод.
2) где вы нашли функцию random и что это за индусское выражение?

matrix[i][j]=(10-(-10))random(10)/10. -10;

Я обычно делаю так:

matrix[i][j] = int(rand() / RAND_MAX * 20 - 10);

  Ответить  
 
 автор: zzDimazz   (11.01.2008 в 14:50)   письмо автору
 
   для: Фитч   (11.01.2008 в 14:22)
 

Эээм в универе припрягают так писать просто наша среда Turbo C++ 3.1 (1990-1992гг)
Я не виноват преподы заставляют жестко :((
так что извените

  Ответить  
 
 автор: Фитч   (12.01.2008 в 02:20)   письмо автору
 
   для: zzDimazz   (11.01.2008 в 14:50)
 

Да нет, я просто спросил))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования