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

Преобразовать матрицу в текстовую строку

03.11.2012, 17:40. Показов 1308. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести символьную матрицу. Инвертировать её относительно середины строки. Преобразовать матрицу в стринг. Найти длину стринга.
Не знаю как преобразовать в стринг
Матрица инвертируется, выводится, а вот как правильно преобразовать в стринг не знаю, помогите пожалуйста
Вот мой код:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
 
void mass (char ** a, int k, int l)
{
    char ch; 
    int i, j;
    ch = getchar();
    for (i=0; i < k; i++)
    {
        for (j=0; j < l; j++)
        {
            printf ("a[%d][%d]=",i,j);
            a[i][j] = getchar();
            fflush(stdin);
        }
    } 
}
void output (char ** a, int k, int l)
{
     int i, j;
     for (i=0; i<k; i++) 
    {
        for (j=0; j < l; j++)
            printf("%c ",a[i][j]);
            printf("\n");
     }
} 
void swap (char ** a, int k, int l)
{
     char b;
     int i, j;
     for(i = 0;i < k; i++)
     {
           for(j=0;j < (l/2); j++)
           { 
              b = a[i][j];
              a[i][j] = a[i][l-j-1];
              a[i][l-1-j] = b;
              }
              printf("\n");
        }
}  
     
int main()
{
    int i, j, n;
    char *s, **a = new char*[n];
    char c;
    printf("input n=");
    scanf("%d",&n);
    for (i=0; i<n; i++)
    a[i] = new char[n];
    mass (a, n, n);
    output (a, n, n);
    swap (a, n, n);
    output (a, n, n);
    for (i=0; i<n; i++)
    for (j=0; j<n; j++)
    *(s+(i*n+j)) = *(*(a+i)+j);
    *(s+n*n) = '\0';
    printf("s = %s",s);
    printf("\n");
    printf("%d",strlen(s));
    getch();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2012, 17:40
Ответы с готовыми решениями:

Преобразовать текстовую строку в код
Нужно преобразовать текстовые строки в код, т.е. условно говоря строку, например...

Как преобразовать текстовую строку в формулу?
Здравствуйте! Пожалуйста помогите разобраться с проблемой. В Excel в ячейке например А1 есть...

Как преобразовать текстовую строку типа (y = x + 2) в уравнение чтобы можно было посчитать его зная x
Уважаемые коллеги, подскажите пожалуйста как решить такую задачу. Пользователь вводит в...

Матрицу 9х8 преобразовать в матрицу 8х7, вычеркнув строку и столбец
Матрицу 9х8 преобразовать в матрицу 8х7 , вычеркнув строку и столбец, на пересечении которых...

1
349 / 299 / 166
Регистрация: 15.03.2012
Сообщений: 653
Записей в блоге: 1
03.11.2012, 18:39 2
Както так. В Си new тету.
Насчёт инвертрации не знаю.

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
//#include <conio.h>
#include <stdlib.h>
#include <string.h>
 
void mass (char *a, int n)
{
    char ch; 
    int i, j;
    ch = getchar();
    for (i=0; i < n; i++)
        for (j=0; j < n; j++) {
            printf ("a[%d][%d]=",i,j);
            while((ch=getchar())=='\n')
                ;
            *(a+i*n+j) = ch;
            //fflush(stdin);
        }
}
 
void output (char *a, int n)
{
     int i, j;
     for (i=0; i<n; i++) {
        for (j=0; j<n; j++)
            printf("%c ", *(a+i*n+j));
        printf("\n");
     }
}
 
void swap (char *a, int n)
{
     char b;
     int i, j;
     for(i = 0; i<n; i++) {
            for(j=0; j<(n/2); j++) { 
                b = *(a+i*n+j);
                *(a+i*n+j) = *(a+i*n+n-j-1);
                *(a+i*n+n-j-1) = b;
            }
            printf("\n");
        }
}  
     
int main()
{
    int i, j, k, n;
    char c;
    
    printf("input n=");
    scanf("%d",&n);
    char a[n][n];
    
    mass (&a[0][0], n);
    output (&a[0][0], n);
    swap (&a[0][0], n);
    output (&a[0][0], n);
    
    char string[n*n+1];
    for (i=0, k=0; i<n; ++i)
        for (j=0; j<n; ++j, ++k)
            string[k] = a[i][j];
    string[++k]=0;
            
    puts(string);
 
    return 0;
}
1
03.11.2012, 18:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2012, 18:39
Помогаю со студенческими работами здесь

Преобразовать заданную прямоугольную матрицу Х (р,к) в матрицу строку У (п, расположив последовательно все столбцы матрицы Х
Преобразовать заданную прямоугольную матрицу Х (р,к) в матрицу строку У (п, расположив...

Матрицу преобразовать по схеме в строку
Нужно написать ассемблерную вставку преобразования матрицы в строку,есть код на шарпе,но как...

Матрицу преобразовать по схеме в строку
Матрицу преобразовать по схеме в строку

Преобразовать заданную прямоугольную матрицу, упорядочив каждую строку по неубыванию элементов
Дана матрица размера mxn. Преобразовать ее,упорядочив каждую строку по неубыванию элементов....


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

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