Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C] Составить квадратную матрицу.


Автор: AlLaG 11.12.2007, 16:23
Нужно сделать в С

Дан масив (a1, a2, ..... an). Составить квадратную матрицу.(значения массива и кол-во строк берутся из файла)

 (   a1         a2     ....    an    )
 (  2*a1    2*a2   ....   2*an )
 (     .            .                .     )
 (     .             .               .     )
 (     .              .              .     )
 ( n*a1     n*a2   ....    an    )





 

Помогите умоляю !! 

Автор: AlLaG 11.12.2007, 21:02
Пожалуста!! Народ помогите !! Очень прошу!!

Автор: Dov 11.12.2007, 21:53
В твоей предыдущей теме человек тебе помог, потратил своё время. И что? Ты даже не удосужился ему ответить. Не удивительно, что тебе никто не хочет помогать теперь.  smile 

Автор: likehood 11.12.2007, 22:07
Код

#include <stdio.h>
#include <malloc.h>

int main()
{
    FILE *file;
    file = fopen("data.txt", "rt");
    if (file == NULL) {
        puts("Can't open file");
        return 1;
    }
    int N, i, j;
    fscanf(file, "%d", &N);
    double **matr = (double**) malloc(sizeof(double*)*N);
    if (matr == NULL) {
        puts("Can't allocate memory");
        return 1;
    }
    for (i=0; i<N; i++) {
        matr[i] = (double*) malloc(sizeof(double)*N);
        if (matr[i] == NULL) {
            puts("Can't allocate memory");
            return 1;
        }
    }

    for (i=0; i<N; ++i)
    {
        double x;
        fscanf(file, "%lf", &x);
        for (j=0; j<N; ++j)
            matr[j][i] = x*(j+1);
    }

    for (i=0; i<N; ++i) {
        for (j=0; j<N; ++j)
            printf("%5.4f ", matr[i][j]);
        printf("\n");
    }

    fclose(file);
    for (i=0; i<N; ++i)
        free(matr[i]);
    free(matr);

    return 0;
}

Автор: Nigga 11.12.2007, 22:44
Спасибо!!!!!!!!!!!!))))))))))))))))))) ты помог и мне тоже)))))))))))))))))))) Ты просто гений!!!!!!!! 

Автор: likehood 11.12.2007, 22:50
Цитата(Nigga @  11.12.2007,  22:44 Найти цитируемый пост)
ты помог и мне тоже))))))))))))))))))))

Ну вы блин даете! smile

Автор: Dov 11.12.2007, 23:19
likehood, там в 32 строке вроде должно быть так: x*(j+1). Хотя, не уверен.  smile  

Автор: likehood 11.12.2007, 23:46
Цитата(Dov @  11.12.2007,  23:19 Найти цитируемый пост)
там в 32 строке вроде должно быть так: x*(j+1).

да вроде все правильно: в пределах строки множитель один и тот же

Автор: Dov 12.12.2007, 00:29
Цитата(likehood @  11.12.2007,  22:46 Найти цитируемый пост)
в пределах строки множитель один и тот же

Так и я о том же. Но у тебя-то получается в пределах столбца, а не строки. Ну, вот, смотри.
Код
 
   for (i=0; i<N; ++i)
    {
        double x;
        fscanf(file, "%lf", &x);
        for (j=0; j<N; ++j)
            matr[j][i] = x*(i+1);
    }

Видишь, в каждом столбце один и тот же множитель.  smile  Или я чего-то не понял?  


Автор: AlLaG 12.12.2007, 17:44
Парни, спасибо ОГРОМНОЕ!!!


P.S
Dov, я пытался ему поднять репутацию,но к сожелению написали то что у вас мало постов и вы неможете сделать этого ((  Косяк, исправлюсь!

Автор: Dov 12.12.2007, 19:08
AlLaG, дело не в репутации, а в отношении к человеку, который попытался тебе помоч. Он же не просил тебя поднять ему репу, правда ведь? Но если он тебе реально помог, то неужели так трудно сказать человеку спасибо(это же денег не стоит!!!) и пометить тему решённой. Если бы ты так сделал, то, во-первых, человек бы знал, что его усилия не пропали даром, а во-вторых, нашлись бы люди, которые подняли бы ему репу от твоего имени.  smile  Таким образом, все стороны были бы довольны.  smile 

Автор: AlLaG 12.12.2007, 19:56
Да с этой сесией.. сам понимаешь... вся голова забита тока предметами, вот чёто и из головы вылетело... виноват исправлюсь  smile 

Автор: Dov 12.12.2007, 20:22
Ладно, проехали.  smile 

Автор: likehood 12.12.2007, 20:30
Цитата(Dov @  12.12.2007,  00:29 Найти цитируемый пост)
Видишь, в каждом столбце один и тот же множитель.

кажись действительно у меня косяк. я что-то на ночь глядя не заметил. спасибо за поправку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)