Вопрос, который я пытаюсь решить это:Что случилось с моим кодом алгоритма?
Вам предоставляется прямоугольный торт, представленный в виде г х С сеткой. Каждая клетка имеет злую клубнику или пуста. Например, торт 3 × 4 может выглядеть следующим образом:
Cakeminator собирается съесть торт! Каждый раз, когда он ест, он выбирает строку или столбец, который не содержит злой клубники и содержит по крайней мере одну ячейку для пирога, которая раньше не была съедена, и ест все там пирожные. Он может принимать пищи каждый раз.
Пожалуйста, выведите максимальное количество клеток торта, которые может съесть cakeminator.
Первая строка ввода содержит два целых числа r и c (2 ≤ r, c ≤ 10), обозначая количество строк и количество столбцов торта. Следующие r строк содержат c-символы - j-й символ i-й строки обозначает содержимое ячейки в строке i и столбце j и является либо одним из следующих:
'.' символ обозначает клетку торта без злой клубники;
Символ 'S' обозначает ячейку торта со злой клубникой.
Выведите максимальное количество клеток торта, которые может съесть cakeminator.
Вот входной образец, который должен производить 8
:
3 4
S...
....
..S.
Мой код дает 12
:
#include <stdio.h>
int main(void) {
int r, c;
scanf("%d %d", &r, &c);
int cake[r][c];
int i, j, cnt=0, cou=0, a=0, b=0, cell=0;
getchar(); //reject "\n"
for(i=0;i<r;i++) {
for(j=0;j<c;j++) {
scanf("%c", &cake[i][j]);
}
getchar();
}
// debug
// printf("%c\n", cake[0][0]);
// printf("%c\n", cake[0][1]);
// printf("%c\n", cake[0][2]);
// printf("%c\n", cake[0][3]);
// printf("%c\n", cake[2][2]);
for(i=0;i<r; i++) {
for(j=0;j<c;j++) {
cnt++;
if(cake[i][j]=='S') {
cnt=0;
break;
}
}
if(cnt>0) {
a++;
}
}
for(j=0;j<c;j++) {
for(i=0;i<r;i++) {
cou++;
if(cake[i][j]=='S') {
cou=0;
break;
}
}
if(cou>0) {
b++;
}
}
cell=cnt + cou - a*b;
printf("%d", cell);
return 0;
}
По отладки, я обнаружил, что if(cake[i][j] == 'S')
это неправильно, но я не знать причину.
торт [I] [J] хранит целое значение. cast 's' в целое число перед его сравнением. –
отформатируйте ваши 'for' петли в одной строке, вы найдете код намного проще для чтения – thumbmunkeys
@AlterMann - nope. это символ не строка. –