Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449
1

Привести в матрице главную диагональ равную нулям

14.04.2013, 15:27. Показов 1390. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
написал следующий код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
main()
{
int i, j, n;
int a[n][n];
srand(time(NULL));
printf("n="); scanf("%d", &n);
for(i=0; i<n; i++)
for(j=0; j<n; j++)
a[i][j] = rand()%3+0;
printf("%d", &a[i][j]);
system("PAUSE");
}
должен строить матрицу изчисел диапозона [0;3] допустим матрицу 9х9

а выдает следующее:

Привести в матрице главную диагональ равную нулям
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2013, 15:27
Ответы с готовыми решениями:

Найти сумму максимума и минимума в каждой матрице. В той матрице, где сумма больше, обнулить главную и побочную диагональ
Очень не укладываюсь в срок помогите подготовить программу: Даны две квадратные матрицы A и B....

Поменять местами побочную и главную диагональ в матрице
Здравствуйте. Помогите, пожалуйста, написать программу которая меняет побочную и главную диагональ...

В квадратной матрице найти главную диагональ и отсортировать четные числа
Помогите пожалуйста;) Задание в квадратной матрице найти главную диагональ и отсортировать...

Найти минимальное число в матрице и заменить им главную и побочную диагональ
6. Дана матрица nn, заполненная числами. Найти в ней минимальное число и заменить им главную и...

8
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
14.04.2013, 15:35 2
Цитата Сообщение от e73t4ph_2 Посмотреть сообщение
a[i][j] = rand()%3+0
попробуйте
C#
1
a[i][j] = rand()%4
0
7 / 7 / 2
Регистрация: 19.11.2012
Сообщений: 26
14.04.2013, 15:36 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <cstdlib>
#include <time.h>
 
main()
{
int i, j, n;
int a[n][n];
srand(time(NULL));
printf("n="); scanf("%d", &n);
for(i=0; i<n; i++)
{for(j=0; j<n; j++)
{a[i][j]=rand()%3+0;
printf("%d", a[i][j]);}
printf("\n");
}
system("PAUSE");
}
вот так работает
в функции printf("%d", a[i][j]) знак адреса не надо ставить (у вас 14 строчка в коде)
1
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449
14.04.2013, 15:39  [ТС] 4
Цитата Сообщение от Ihor3 Посмотреть сообщение
попробуйте
C#
1
a[i][j] = rand()%4
программа после этого ошибку выдает

то есть вылетает

Добавлено через 2 минуты
Цитата Сообщение от Mrs_Kate Посмотреть сообщение
вот так работает
в функции printf("%d", a[i][j]) знак адреса не надо ставить (у вас 14 строчка в коде)
спасибо. вы прям мне глаза открыли
0
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
14.04.2013, 15:40 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
 
clrscr();
int a[n][n];
n=7;
int i,j;
for (i=0;i<n;i++){
 printf("\n");
 for(j=0;j<n;j++){
 do
 {
 a[i][j]=rand()%4;
 }
 while ((a[i][j]<0) &&(a[i][j]>4));
 printf( "| %3d|  ",a[i][j], "," );
 
  }
  }
getch();
return 0;
0
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449
14.04.2013, 16:00  [ТС] 6
еще вопрос. хотел привести в матрице главную диагональ равную нулям написал следующий код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <cstdlib>
#include <time.h>
 
main()
{
      int i, j, n;
      int a[n][n];
      srand(time(NULL));
      printf("n="); scanf("%d", &n);
      for(i=0; i<n; i++)
      {
               for(j=0; j<n; j++)
               {
                        if(i=j)
                        {
                               a[i][j]=0;
                        }     
                        {
                              if(i!=j)
                                a[i][j]=rand()%3;
                               printf("%d", a[i][j]);
                        }
               }
               printf("\n");
      } 
      system("PAUSE");
}
результат снова не тот:

Привести в матрице главную диагональ равную нулям
0
7 / 7 / 2
Регистрация: 19.11.2012
Сообщений: 26
14.04.2013, 17:01 7
Зачем так код усложнять? Добавьте просто еще одно условие if(i==j) + не забывайте во внешнем цикле прописать дополнительно printf("\n");, иначе все элементы матрицы выведутся в одну строчку
a[i][j]=0;:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <cstdlib>
#include <time.h>
 
main()
{
int i, j, n;
int a[n][n];
srand(time(NULL));
printf("n="); scanf("%d", &n);
for(i=0; i<n; i++)
{for(j=0; j<n; j++)
{a[i][j]=rand()%3+0;
if(i==j)
a[i][j]=0;
printf("%d", a[i][j]);}
printf("\n");
}
system("PAUSE");
}
1
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449
14.04.2013, 17:14  [ТС] 8
Mrs_Kate, а возможно ли посчитать все получившиеся числа(все двойки, единицы и т.д.) и вывести их на экран?
0
7 / 7 / 2
Регистрация: 19.11.2012
Сообщений: 26
14.04.2013, 17:51 9
Да, возможно, только большое условие будет. Нужно сравнивать каждый элемент матрицы с 2, 1 и тд, ну и счетчик, конечно)
например:
C
1
2
3
4
5
6
7
8
9
10
int k,p;
for(i=0;i<n;i++)
  {for(j=0;j<n;j++)
   { if (a[i][j]==0)
       k++; //счетчик для чисел, равных 0
    else if(a[i][j]==1)
           p++;
      else if ....
    }
 }
ну, и так далее
а потом просто пишешь
C
1
printf("Элементы, равные 1 - %d", k);
1
14.04.2013, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2013, 17:51
Помогаю со студенческими работами здесь

В матрице найти минимальный элемент и поставить его на главную диагональ
в матрице N*M найти минимальный элемент ,поставить его на главную диагональ, на главной диагонали...

В заданной матрице поменять местами первую строку и главную диагональ
используя технологию процедурного программирования, разработать программу обработки двумерных...

В матрице найти наименьшие элементы в каждом столбце и поместить их на главную диагональ
Здравствуйте. Если это возможно,хотелось бы попросить помощи в рещении нескольких задач. ...

Поменять местами строки, столбцы в матрице (чтобы упорядочить главную диагональ)
Здравствуйте, помогите пожалуйста дорешать задачу: Разработать функцию, которая проверяет,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru