Задача о 8 ферзях - C (СИ)
Формулировка задачи:
Всем привет,решил сделать программу для поиска решений,но пока,увы,застопорился.
вот код:
точнее пока это кусок,который к "ферзям" имеет косвенное отношение,но пока не разберусь с тем,что опишу далее,дальше продвигаться не буду.
Итак, рассмотрим:
при входе в цикл строка имеет значение 1(count=0 +1) и sum прописывается,как 0. то есть,иными словами,строка имеет значение 1(что нам и нужно),а сумма в ней 0. в строке 2 прописывается сумма 1ой строки и т.д. Иными словами результаты записываются не в ту строку,причем последний вообще не считается.
как можно решить данную проблему? как заставить программу писать верный результат в нужную строку? я вижу косяк,но не пойму,как это решить.
#include <stdio.h> #include <stdlib.h> int main() { int i,j,sum=0,count=0; int arr[8][8]; for(i=0;i<8;i++) { printf("\n"); for(j=0;j<8;j++) { arr[i][j] = rand()%2; printf("%d ",arr[i][j]); } } printf("\n"); for(i=0;i<8;i++) { printf("\nTotal of string %d: %d ",count+1,sum); sum = 0; count++; for(j=0;j<8;j++) sum= sum + arr[i][j]; } return 0; }
for(i=0;i<8;i++) { printf("\nTotal of string %d: %d ",count+1,sum); sum = 0; count++; for(j=0;j<8;j++) sum= sum + arr[i][j]; }
Решение задачи: «Задача о 8 ферзях»
textual
Листинг программы
#include <stdio.h> #include <time.h> #include <math.h> int main() { #define ROWS 8 #define COLS 12 srand( time( 0 ) ); int matrix[ ROWS ][ COLS ]; int _r; int _c; for( _r = 0; _r < ROWS; _r++ ) for( _c = 0; _c < COLS; _c++ ) matrix[_r][_c] = rand() % 2; // ------- сумма по горизонтали ------ for( _r = 0; _r < ROWS; _r++ ) { int summ = 0; for( _c = 0; _c < COLS; _c++ ) { summ += matrix[_r][_c]; printf( "%2d ", matrix[_r][_c] ); } printf( "| %d\n", summ ); } for( _c = 0; _c < COLS; _c++ ) printf( "---" ); printf( "+\n" ); // ------- сумма по вертикали ------ for( _c = 0; _c < COLS; _c++ ) { int summ = 0; for( _r = 0; _r < ROWS; _r++ ) { summ += matrix[_r][_c]; } printf( " %d ", summ ); } return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Инициализируется генератор случайных чисел
- Создается двумерный массив для хранения чисел
- Заполняется двумерный массив случайными числами от 0 до 1
- Вычисляется сумма чисел по каждой горизонтали и выводится на экран
- Выводится горизонтальная линия из символов
-
- Вычисляется сумма чисел по каждой вертикали и выводится на экран
- Выводится вертикальная линия из символов
+
- Программа заканчивает свою работу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д