kid_0203 2015-11-05 10:58 采纳率: 50%
浏览 2871
已采纳

C语言图案输出诡异的问题,这两个代码输出的图案有什么不同??

 #include<stdio.h>   
void main()   
{int i,j,k;   
for(i=1;i<=4;i++)   
{for(j=1;j<=4-i;j++)   
printf(" ");   
for(k=1;k<=2*i-1;k++)   
printf("*");   
printf("\n");}   
for(i=1;i<=3;i++)   
{for(j=1;j<=i;j++)   
printf(" ");   
for(k=1;k<=7-2*i;k++)   
printf("*");   
printf("\n");}   
}  

 #include <stdio.h>
int main()
{
    char diamond[ ][7]={{' ',' ',' ','*'},{' ',' ','*','*','*'},
    {' ','*','*','*','*','*'},{'*','*','*','*','*','*','*'},{' ','*','*','*','*','*'},
    {' ',' ','*','*','*'},{' ',' ',' ','*'}};
    int i,j;
    for(i=0;i<7;i++)
    {for(j=0;j<7;j++)
    printf("%c",diamond[i][j]);
    printf("\n");
    }
    return 0;
}

上面两个都是输出同一个图案代码,在学校c语言平台测试结果第一个正确,第二个错误。可是我观察了很久这两个代码输出的结果我感觉是一样的,下图左边为期待输出的正确结果,右边为测试结果,系统提示结果为错误答案。我真的看不出来有啥不同,,,,下面的图是我在第二个平台上下载下来的文件,我用记事本打开发现确实不太一样,,,我以为是空格的问题 但是平台那里图案后面确实没有空格,,,所以好奇怪(代码一结果为正确 二为错误)
图片说明
图片说明

  • 写回答

3条回答 默认 最新

  • 纹枰老妖 2015-11-05 12:02
    关注

    楼主,看您的第二个代码,数组的每第二个维度长度为7,您在初始化的时候,如果没有填满这7个元素,那么后面的没有被填的元素会被默认填入【'\0'】,也就是空元素,它的二进制形式是0.
    而把它们输入到记事本中时,0元素是很可能被转换为空格符的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格