Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
1

Составить программу на языке Си,которая выводит элементы матрицы в заданном порядке

12.12.2009, 22:29. Показов 6373. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
[IMG]http://s59.***********/i166/0912/c1/560164df410b.jpg[/IMG]

Помогите пожалуйста составить алгоритм, а в идеале еще и закодить). У меня были идеи,но они какие-то слишком длинные,вообщем не получилось пока что.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2009, 22:29
Ответы с готовыми решениями:

Составить программу, которая запрашивает 3 числа а потом выводит их в заданном порядке
Составить программу, которая запрашивает у пользователя три целых числа, а затем выводит их через...

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

Дано 3 Числа. Составить программу которая выводит их в порядке возрастания
Дано 3 Числа. Составить программу которая выводит их в порядке возрастания.

Составить программу, которая последовательно сортирует в порядке возрастания каждые K числа и выводит на печать
1. Даны натуральные K, N и вещественные a1,a2, . . . , aKN числа. Составить программу, которая...

35
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
13.12.2009, 00:04  [ТС] 21
Author24 — интернет-сервис помощи студентам
manfeese, можешь тогда полный код прислать, я посмотрю,плииз! А то у меня вообще не то выдает...
0
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
13.12.2009, 00:05 22
вот мой код
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
 
int main () 
{
   const n=3;
   int i,j,a[n][n] = {1,2,3,
                          4,5,6,
                          7,8,9};
 
   for(i=n-1; i>=0; i--)
     for(j=0;j<n-i;j++)
        printf("%d ",a[i+j][j]);
 
   for(i=1; i<n; i++)
     for(j=0;j<n-i;j++)
        printf("%d ",a[j][j+i]);
 
   getch();
   return 0;
}
1
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
13.12.2009, 00:11  [ТС] 23
M128K145, ОГРОМНОЕ СПАСИБО! Теперь все работает! Если несложно,можешь еще рассказать для чего здесь библиотека <stdlib.h> и вообще о ней?
P.S. У нас мало написать программу, препод детально идучает,мы ее писали или нет,так что понять мне ее нужно в любом случае))

Добавлено через 2 минуты
manfeese, тоже огромное спс!
АХАХАХАХАХАХАХАХ! Не поверишь где мне в твоем коде ошибку выдало!)) На 76 строчке библиотеки conio!)) АХАХАХ
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
13.12.2009, 00:13 24
trueherofromad, я не понимаю, что у тебя не работает?
Вот

manfeese, забавно посмотреть на твои мучения при изменении n на 10)) и постоянно меняя n

значит уже заработало) Сейчас распишу
1
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
13.12.2009, 00:19 25
))))))) Думаешь мне это надо??? Я как пример привел, а автор пускай мучаеться!!!

Добавлено через 2 минуты
Цитата Сообщение от trueherofromad Посмотреть сообщение
Не поверишь где мне в твоем коде ошибку выдало!)) На 76 строчке библиотеки conio!))
В таком случае замени так:
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 <stdlib.h>
 
int main () {
const n=3;
int i,j,a[n][n] = {1,2,3,
                  4,5,6,
                  7,8,9};
 
for(i=n-1; i>=0; i--)
  for(j=0;j<n-i;j++)
        printf("%d ",a[i+j][j]);
 
for(i=1; i<n; i++)
  for(j=0;j<n-i;j++)
        printf("%d ",a[j][j+i]);
 
 system("pause");
 return 0;
 }
1
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
13.12.2009, 00:22  [ТС] 26
manfeese, конечно мучаться должен я,а тебе большое спасибо за помощь!) Мне сам код был и не обязателен,хотя бы алгоритм) А тут весь код,я просто счастлив)

Добавлено через 2 минуты
Ошибку с библиотекой сам исправил,вот только теперь в 7-ой строке столько ошибок выдало,что я не все успел пролистать за 30 секунд
0
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
13.12.2009, 00:25 27

Не по теме:

Просто, если за авторов писать сразу весь код, то они никогда не смогут понять сути программирования, а так может хоть чтото в памяти останеться!!! :)



Добавлено через 2 минуты
Ладно уж! начало измени на токое: (до основных циклов)
C
1
2
3
4
5
6
7
.....
int i,j,a[n][n];
 
for(i=0;i<n;i++)
   for(j=0;j<n;j++)
      a[i][j]=n*i+j;
.....
Это заполнение матрицы
0
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
13.12.2009, 00:27  [ТС] 28
manfeese, согласен)),только вы мне нефига алгоритм не объясняли, а сразу код кидали)) Ну его я сам пойму без проблем,как только компиляцию твоей отлажу,хоть 1 рабочая и есть.
В 8-ой строк оч много ошибок,можешь объяснить почему? Вот код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 3;
 
int main () {
int i,j;
int a[3,3]={1,2,3,4,5,6,7,8,9};
for(i=n-1; i>=0; i--)
  for(j=0;j<n-i;j++)
                printf("%d ",a[i+j][j]);
 
for(i=1; i<n; i++)
  for(j=0;j<n-i;j++)
                printf("%d ",a[j][j+i]);
 
 system("pause");
 return 0;
 }
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
13.12.2009, 00:29 29
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>//для system()
#define n 10
int main()
{
    int matr[n][n], i, j, k = 0, z = 0;//объявление переменных
    for(i = n - 1; i >= 0; --i, z ^= z)//цикл по строкам;
    //z ^= z - аналогично z = 0, только из-за отсутствия адрессных операций работает значительно быстрее
        for(j = 0; j < n - i; ++j)//цикл по столбцам
            matr[i + z++][j] = ++k;//присваиваем нужное значение 
    for(j = 1; j < n; ++j, z ^= z)// цикл по столбцам
        for(i = 0; i < n - j; ++i)//цикл по строкам
            matr[i][j + z++] = ++k;//присваиваем нужное значение 
    for(i = 0; i < n; ++i, printf("\n"))//цикл по строкам
        for(j = 0; j < n; ++j)//цикл по столбцам
            printf("%d\t", matr[i][j]);//вывод на консоль
    system("pause");//задержка экрана
    return 0;
}
1
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
13.12.2009, 00:32 30
попробуй так
Код
int a[3[COLOR="Red"]][[/COLOR]3]={1,2,3,4,5,6,7,8,9};
0
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
13.12.2009, 00:34  [ТС] 31
M128K145, спасибо за объяснение обнуления z, этого я не знал и библиотеки! А остальное это лишнее я какбэ не в ПТУ учусь))
+ Я чтобы окно не закрывалось пользуюсь бат файлом,с текстом:
@echo off
имя
PAUSE

Добавлено через 2 минуты
manfeese, попробовал,спс,компилируется,только выполнение не то:
[IMG]http://i079.***********/0912/08/c596e96ab60d.jpg[/IMG]
0
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
13.12.2009, 00:41 32
А как объяснить данный алгоритм??? он выполняет обход матрицы по твоему принципу. Если возьмешь небольшую матрицу, 3х3 например, и проделаешь этот алгоритм вручную то поймешь как он работает. Что тут еще надо объяснять???

Добавлено через 3 минуты
а вообще используй переменную в записи массива
Код
int a[n][n]
а то где-то n изменишь, а размер массива останеться прежним, ну соответственно и ошибки будут выползать!
1
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
13.12.2009, 00:42  [ТС] 33
manfeese, спс, щас уже алгоритм объяснять не надо конечно)) Просто в начале у меня были какие-то странные идеи с ифами и прочим...
0
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
13.12.2009, 00:49 34
Вот все рабочее, что у меня есть, разбирай!!!
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
29
30
31
#include <stdio.h>
#include <stdlib.h>
#define n 5
 
int main () {
 
int i,j,a[n][n];
 
for(i=0;i<n;i++)
{
   for(j=0;j<n;j++)
   {
     a[i][j]=n*i+j;
     printf("%d\t",a[i][j]);
   }
  printf("\n");
}
 
printf("\n");
for(i=n-1; i>=0; i--)
  for(j=0;j<n-i;j++)
        printf("%d ",a[i+j][j]);
 
for(i=1; i<n; i++)
  for(j=0;j<n-i;j++)
        printf("%d ",a[j][j+i]);
 
 printf("\n");
 system("pause");
 return 0;
 }
1
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
13.12.2009, 00:52  [ТС] 35
Разберу)) Кстати,на лабах у нас стоят компы с НетБсд,где значения вводятся при открытии файла a.out, и мне надо будет,чтобы n изменялось в зависимости от количества введенных цифр,для этого код надо будет переделать)),вообщем это я сам сделаю)) Это так,чтоб вы не думал,что я прям злостных иждивенец))
0
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
18.12.2009, 14:44  [ТС] 36
manfeese,
ссори, я щас пытаюсь доработать прогу,чтобы он работала с вводимыми данными,можешь с этим помочь, а то ваши проги вроде бы на это совсем нерасчитанны(((

Вот начало программы, а как сделать,чтобы она выдовала то,что нужно, я до сих пор не врубился и твою программу переделать не получается,ХЭЛП МИ ПЛИЗ,до субботы нужно по зарез сдать,иначе до экзамена не допустят(((

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
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
 
int main ()
{
    int i,j,size;
    int a[10][10];
    printf ("vvedite razmernost matrici [1;10]: ");
    scanf("%ld%*[^\n]",&size);
    getchar();
 
printf ("Vvedite elementi matricu \n");
i=0;
j=0;
 for (i=0; i<size;i++) {
 for (j=0; j<size;j++) {
scanf ("%d", &a[i][j]);
}
}
 
 
printf ("\n");
 
for (i=0; i<size;i++,printf ("\n")) {
for (j=0; j<size;j++)
printf ("%d\t", a[i][j]);
}
 
printf ("\n");
 
 
А ЗДЕСЬ ДОЛЖЕН БЫТЬ ОСНОВНОЙ ЦИКЛ
0
18.12.2009, 14:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2009, 14:44
Помогаю со студенческими работами здесь

Составить программу, которая находит положительные элементы массива и выводит их на экран
Нужно написать программу в Borland Delphi 7. Составить программу,которая находит положительные...

Составить программу, которая выводит четные элементы двумерного массива и находит их количество
Составить программу которая выводит четные элементы двумерного массива. находит их количество....

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

Составить п/п, которая в данной строке целочисленной матрицы переставляет элементы в обратном порядке
Хотелось бы узнать у профессионалов, в чем заключается ошибка при билде: Linking... Text3.obj :...


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

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