请帮帮我解答疑问,这个问题我一开始用的是二维数组的方法,但是当数字过大时就爆了,想了好久都没有想出来如何解决,能否帮我看看我的程序,或者给出一个新思路
想了好久都无从下手,如何求解?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- aabond 2022-10-15 14:01关注
代码逻辑有点小问题,用取余来获取就不会超出A-Z的范围,上面题主的代码,n 过大会导致超出A-Z,n=53, m = 91-(53-26) = 64就是A的前一个字符@,超出了范围。
int main() { char w[1000][1000]; int i,j = 0; int n = 0; scanf("%d",&n); int k = 2 * n - 1; char x = 91 - n % 26 ; for(i = n; i > 0; i--) { for(j = 0; j < k; j++) { w[i-1][j]=x; w[k-i][j]=x; w[j][i-1]=x; w[j][k-i]=x; } if(x == 90) { x = 65; continue; } x++; } for(i = 0; i < k; i++) { for(j = 0; j < k; j++) { printf("%c", w[i][j]); } printf("\n"); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
- ¥15 gdf格式的脑电数据如何处理matlab
- ¥20 重新写的代码替换了之后运行hbuliderx就这样了
- ¥100 监控抖音用户作品更新可以微信公众号提醒
- ¥15 UE5 如何可以不渲染HDRIBackdrop背景
- ¥70 2048小游戏毕设项目
- ¥20 mysql架构,按照姓名分表
- ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分