Форум программистов, компьютерный форум CyberForum.ru

Текст записывается в квадратную матрицу, а затем прочитывается по спирали, начиная с центра - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функции в C++. http://www.cyberforum.ru/cpp-beginners/thread546347.html
Здравствуйте. Написал код программы, что-то на подобии базы данных библиотеки. Но мне нужно код переписать с использованием функций. Как создавать и работать с фуекциями я знаю, но затрудняюсь с тем, как и что нужно возвращать из функции. Нужны функции для всех действий над каталогом т.е. для поиска, добавления, редактирование и т.д. Подскажите, как мне правильно и что именно мне возвращать в...
C++ Вывод константы long double Доброго времени суток! Учусь программировать на С++ и возникла такая проблема: есть константа 6.626068E-034. я назначил тип long double. При выводе она округляется до 6.62607E-034. Вопрос: можно ли вывести её без округления и как это сделать? З Ы Если нет, то зачем в файле cmath задано значение пи 3.14159265358979323846 ? http://www.cyberforum.ru/cpp-beginners/thread546345.html
C++ Тройное равенство в списке
Здраствуйте, в программе создается динамический односвязный кольцевой список. Для этого создана структура с двумя "ячейками": ELEM где сам элемент и Next где адрес на следущий элемент. pEND=pPRED=pTEK; не понимаю значения этой строчки, pEND pPRED pTEK относятся к структуре. Что в них приравнивается и чему? Каждая "ячейка" каждой или..? Спасибо заранее за помощь.
Замена цифр в числе C++
Здравствуйте, помогите с заданием: Дано натуральное число n, заменить в нем цифры 3,5,7 на 4,6,8 соответственно. На паскале писала подобную программу, она у меня есть (если нужно могу выложить), но вот что-то под с++ переделать не получилось(
C++ Шаблон класса «Комплексное число» http://www.cyberforum.ru/cpp-beginners/thread546306.html
Помогите пожалуйста исправить ошибки в программе Задание :Создать шаблон класса «Комплексное число» – Complex. Класс должен содержать несколько конструкторов и операции для сложения, вычитания, умножения, деления, присваивания. Создать два вектора размерности n из комплексных координат. Передать их в функцию, которая выполняет сложение комплексных векторов. Программа: #include <iostream>...
C++ Вывести слова в порядке, соответствующем латинскому алфавиту Дана строка символов, состоящих из произвольного текста на английском языке, слова разделены пробелом. Вывести на экран слова этого текста в порядке, соответствующем латинскому алфавиту. подробнее

Показать сообщение отдельно
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
13.04.2012, 02:08     Текст записывается в квадратную матрицу, а затем прочитывается по спирали, начиная с центра
Попробовал собрать у себя, программа заворачивается на первом цикле do while

Добавлено через 1 час 56 минут
Вот, пошаманил немного)

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
int main()
{
    FILE *f;
    FILE *b;
    int i=0, t=0;
    int j=0, k=0;
 
    double v;
    int z;
    f=fopen("shif.txt", "rt");
    if (f == NULL) {
        printf("File not found");
        exit(1);
    }
 
    do{
        if (fgetc(f)) ++k;
    }while (! feof(f));
    --k;
    printf("k=%d", k);
 
    v=sqrt(k);
    printf("v=%f", v);
    z=ceil(v);
    printf ("z=%f\n", z);            //размерность исходного массива
    t=z;
 
    char **a;
    int ii;
 
    a=(char**)malloc(t * sizeof(char*));
    for(ii=0;ii<t;ii++)
        a[ii]=(char*)malloc(t*sizeof(char));
 
    fseek(f,0,SEEK_SET);
 
    int n=0, m=0;
    for (n =0; n < t; ++n)
        for (m=0; m < t;++m)
            a[n][m] = fgetc( f );
 
    b=fopen("itog.txt", "wt");
    if (b == NULL){
        printf("File not created");
        exit(1);
    }
 
    int  i1=t, j1=t, temp=0;        //прочитываем ее по спирали в одномерный массив
    char mas1[t*t];
    j=0;
    while(j<j1)
    {
        i=t-i1;
        j=t-j1;
        for(j++; j<j1; j++)
        {
            mas1[temp]=a[i][j];
            temp++;
        }
        j--;
        for(i++; i<i1; i++)
        {
            mas1[temp]=a[i][j];
            temp++;
        }
        i--;
        for(j--; j>=t-j1; j--)
        {
            mas1[temp]=a[i][j];
            temp++;
        }
        j++;
        for(i--; i>t-j1; i--)
        {
            mas1[temp]=a[i][j];
            temp++;
        }
        i++;
        i1--;
        j1--;
    }
 
    fputs(mas1, b);
    fclose(f); fclose(b);
    for (i =0; i < t; ++i)
        free(a[i]);
    free(a);
 
    return 0;
}
Не знаю как по условию, но ваш алгоритм будет некорректно работать если количество символов не будет хватать для полной квадратной матрицы.
 
Текущее время: 01:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru