Другие языки программирования и технологии

Товарищи, залип на Си. Не могу найти косяк, помогите плиз.

Собственно само заданьице.
Задана матрица Q(3,3). Если на главной диагонали стоит нуль, то соответствующую строку заменить единицами.

Кодъ:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int Q[3][3],i=0,j=0;
srand(time(NULL));
for (i=0;i
#include <time.h>
#include <stdio.h>
#include <stdlib.h>

int main() {
    int q[3][3], r, c;
    srand(time(NULL));
    puts("matrix:");
    for (r = 0; r < 3; ++r) {
        for (c = 0; c < 3; ++c) printf("%d ", q[r][c] = rand() % 3);
        putchar('\n');
    }
    for (r = 0; r < 3; ++r) if (q[r][r] == 0) for (c = 0; c < 3; ++c) q[r][c] = 1;
    puts("\nresult:");
    for (r = 0; r < 3; ++r) {
        for (c = 0; c < 3; ++c) printf("%d ", q[r][c]);
        putchar('\n');
    }
    return 0;
}
Александр Колышкин
Александр Колышкин
92 908
Лучший ответ
Код - на pasebin.com, сюда - ссылку.
Вот это
23. do j++,Q[j]=1;
24. while (j!=3);
и это
30. do j++, printf("%d ", Q[j]);
31. while (j!=3);

сначала делает, а потом проверяет.
и что оно делает с Q[ i][ 3] за пределами массива?

(про пролезание кода - [ i] без пробела включает курсив. мейл многое считает метками форматирования текста)
Жандос Агумбай
Жандос Агумбай
75 320
страно что этот код вообще компилируется
обозначена матрица int Q[3][3] - правильно
присвоение элемента Q[j]= rand()%4; - косяк, так как должен быть указан второй индекс : прим. Q[j]
if (Q==0) тут вообще непонятно какой элемент вы хотели сравнить

вообщем по списку добавьте к каждой Q по второму индексу для начала