求助:计算机编程,用C语言实现统计由符号空格和*号组成的表格中,由*号组成水平线、垂直线、对角线的数量
如上图所示,两个功能:
1、输入表格,可以为二维数组,元素只能由#、空格、*号组成,*号是水平和垂直方向交口,表格大小固定13*13
2、统计由*组成的线(至少由2个连续*号组成),水平线、垂直线、对角线各是多少
#include<stdio.h> void lines_count(char map[13][13], int * ch, int * cv, int * cd) { int i, j; *ch = *cv = *cd = 0; for(i = 1; i < 12; i++) for(j = 1; j < 12; j++) { if(map[i][j] != '*') continue; if(map[i][j - 1] != '*' && map[i][j + 1] == '*') (*ch)++; if(map[i - 1][j] != '*' && map[i + 1][j] == '*') (*cv)++; if(map[i - 1][j - 1] != '*' && map[i + 1][j + 1] == '*') (*cd)++; if(map[i - 1][j + 1] != '*' && map[i + 1][j - 1] == '*') (*cd)++; } } int main() { char map[13][13], str[16]; int i, j, hlines, vlines, dlines; for(i = 0; i < 13; i++) for(gets(str), j = 0; j < 13; map[i][j] = str[j++]); lines_count(map, &hlines, &vlines, &dlines); printf("The grid contains\n"); printf(" - %d horizontal lines\n", hlines); printf(" - %d vertical lines\n", vlines); printf(" - %d diagonal lines\n", dlines); return 0; }