打印二维数组单个元素时为何出现多余%符号?
问题原因和解决办法
先看你写的代码:
printf("%d" , marks [0][0];,这行存在语法错误——末尾缺少闭合的右括号),正确写法应该是printf("%d", marks[0][0]);。输出里的多余
%,大概率是两种情况:- 终端提示符干扰:要是你在Linux/macOS这类系统的shell里运行程序,程序输出
90后没有换行,shell的默认提示符(很多是%)会直接紧跟在输出内容后面,看起来就成了90%。给printf的格式字符串加个换行符,改成printf("%d\n", marks[0][0]);,就能把程序输出和终端提示符彻底分开。 - 语法错误引发的未定义行为:因为代码少了右括号,宽松的编译器可能生成不符合预期的机器码,导致printf调用逻辑混乱——比如读错栈中数据、格式解析异常,最终多输出了
%。这种情况只要补上缺失的右括号,修复语法错误就能解决问题。
- 终端提示符干扰:要是你在Linux/macOS这类系统的shell里运行程序,程序输出
建议先修正代码的括号问题再运行,要是还有
%,就给printf加个换行符,基本就能解决异常。
内容的提问来源于stack exchange,提问作者Yashika
相关产品推荐
相关产品推荐

