| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:为什么这个程序唯独输入 A 会得不到所要的效果?初入门求教
只看楼主 加入收藏
alex_poon
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-9-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
为什么这个程序唯独输入 A 会得不到所要的效果?初入门求教
程序代码:
#include<stdio.h>
int main(void)
{ char letter[26]="ABCDEFGHIJKLMNOPQRETUVWXYZ";
  char x;
  int i,j,k;
  printf("Please enter a letter\n");
  scanf("%c",&x);
  k = x -'A'+ 1;
  for(i=0;i<k;i++)
  {for(j=0;j<k-i;j++) printf(" ");
   for(j=0;j<i+1;j++) printf("%c",letter[j]);
   for(j=i-1;j>=0;j--) printf("%c",letter[j]);
      printf("\n");
  }
  getchar();
  getchar();
  return 0;
}


输入B到Z都可以...就只有A会出很大一堆最后还有点乱码,我用的是VS2008编译的,我看了许多遍都没发现哪里有问题,是编译器的问题吗??

[ 本帖最后由 alex_poon 于 2014-9-10 18:10 编辑 ]
2014-09-10 18:02
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:5 
简单说说:
char letter[26]="ABCDEFGHIJKLMNOPQRETUVWXYZ"; 空间不足呀,至少要定义27
2014-09-10 19:50
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:5 
VS2008测试结果:正常。

梦想拥有一台龙芯3A-4000
2014-09-10 20:03
hackrol
Rank: 4
来 自:世界和平组织
等 级:业余侠客
帖 子:62
专家分:267
注 册:2014-9-6
收藏
得分:5 
第一个问题 字符数组定义小了,最少27.
第二个问题,因为你输入A的时候,第二个for语句会出问题.此时k-1=0; 所以出现你说的情况!
2014-09-10 21:44
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:5 
getchar();起什么作用?
2014-09-11 04:05
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:0 
你输出letter[0]和letter[25]看看
2014-09-11 04:15
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
有图有真相,呵呵

图片附件: 游客没有浏览图片的权限,请 登录注册

梦想拥有一台龙芯3A-4000
2014-09-11 12:04
快速回复:为什么这个程序唯独输入 A 会得不到所要的效果?初入门求教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.100076 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved