标签:Uva232 12 输出 int scanf Answers Crossword 涂黑 矩形
思路:
将矩形周边一周涂黑,另开一个book数组,将初始格记录下来,横向输出的时候利用k来确定下一个输出起始格的位置,避免输出重叠的情况,纵向输出就将输出的过的起始格置为0来避免输出重叠。
AC代码
输出时注意格式printf("%3d") 输出案例输出的数字是在第三个字母下面,因此用%3d
1 #include<stdio.h> 2 #include<string.h> 3 char a[12][12]; 4 int book[12][12]; 5 int main() 6 { 7 int r, c, num = 1; 8 while(scanf("%d", &r) == 1 && r) 9 { 10 scanf("%d", &c); 11 getchar(); //吃掉换行符 12 int count = 1, k = 0; 13 // 先将矩形外围一圈涂黑,这样可以将第一行一般化 14 for(int i = 0; i < r + 2; i++) 15 { 16 a[i][0] = '*'; // 矩形左竖边 17 a[i][c + 1] = '*'; // 矩形右竖边 18 } 19 for(int j = 0; j < c + 2; j++) // 先将矩形外围一圈涂黑 20 { 21 a[0][j] = '*'; // 矩形上横边 22 a[r + 1][j] = '*'; // 矩形下横边 23 } 24 // 输入 25 for(int i = 1; i <= r; i++) //input 26 { 27 for(int j = 1; j <= c; j++) 28 { 29 scanf("%c", &a[i][j]); 30 //确定起始格的数字 31 if(((a[i][j - 1] == '*') || (a[i - 1][j] == '*')) && a[i][j] != '*') 32 book[i][j] = count++; 33 } 34 getchar(); //吃掉换行符 35 } 36 if(num != 1) 37 printf("\n"); 38 printf("puzzle #%d:\n", num++); 39 //横向输出 40 printf("Across\n"); 41 for(int i = 1; i <= r; i++) 42 { 43 k = 1; 44 for(int j = k; j <= c; j++) 45 { 46 if(book[i][j] != 0) 47 { 48 printf("%3d.%c", book[i][j], a[i][j]); 49 k = j + 1; 50 while((k) <= c && a[i][k] !='*') 51 { 52 printf("%c", a[i][k]); 53 k++; 54 } 55 j = k; 56 printf("\n"); 57 } 58 } 59 } 60 printf("Down\n"); 61 for(int i = 1; i <= r; i++) 62 { 63 k = 1; 64 for(int j = 1; j <= c; j++) 65 { 66 if(book[i][j] != 0) 67 { 68 printf("%3d.%c", book[i][j], a[i][j]); 69 book[i][j] = 0; 70 k = i + 1; 71 while((k) <= r && a[k][j] !='*') 72 { 73 printf("%c", a[k][j]); 74 book[k][j] = 0; 75 k++; 76 77 } 78 printf("\n"); 79 } 80 } 81 } 82 } 83 84 return 0; 85 }
标签:Uva232,12,输出,int,scanf,Answers,Crossword,涂黑,矩形
来源: https://www.cnblogs.com/witharush/p/11423402.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。