一个C语言打印三角形的问题!

Akichillng 2016-02-06 05:36:35
要求打印三角形,t是个数,为什么输入的个数与能够打印的个数不一样!!!!
比如我要打印5个三角形,但是只能输出两个!!!求解!!
我把t=t*2+1之后个数正确了,但是OJ上不能AC!
#include<stdio.h>
int main()
{
int t,i,j,m;
char ch,n;
scanf("%d",&t);
while(t--)
{
scanf("%c",&n);
if(n>='A'&&n<='Z')
{
m=n-'A'+1;
}
else
{
m=n-'0';
}
for(i=1;i<=m;i++)
{
if(n>='A'&&n<='Z')
{
ch='A';
}
else
{
ch='1';
}
for(j=1;j<=m-i;j++)
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("%c",ch);
if(j<i)
{
ch++;
}
else
{
ch--;
}
}
printf("\n");
}
}
return 0;
}
...全文
807 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
galiniur0u 2016-02-15
  • 打赏
  • 举报
回复
楼主应该是这里没有控制好,输入完t之后,再输入n时,scanf将回车当做输入赋值给了n。因此每次循环都运行一次之后才是实际输入n值。 楼主可将scanf("%c",&n);改为scanf("\n%c",&n);或者每次打印之后再进行判断是否t--;
u010339971 2016-02-13
  • 打赏
  • 举报
回复
我在学习C++ primer plus这本书,课后习题有一个就是这样。我编的代码有点繁琐,你可以参考一下。 #include <stdio.h> char lets [26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int FindNumber(char); int main (void) { int ROW, rows, chars, space, up, down; char letter, ch; while(1) { printf ("\n\n请您输入一个大写字母,以便为您建造一个漂亮的字母金字塔^_^\n"); letter = getchar(); if (letter >= 'A' && letter <= 'Z') { printf ("\n\n\n"); ROW = FindNumber(letter); for (ch = 'A', rows = 1; rows <= ROW; rows++) { for (space = 1; space <= ROW - rows; space++) printf (" "); printf ("%c", ch); for (up = 0; up < rows - 1; up++) printf ("%c", ++ch); for (down = 0; down < rows - 1; down++) printf ("%c", --ch); printf ("\n"); } } else { printf ("童鞋,你输入的怎么不是大写字母呀!请按任意键退出程序。。。。。。。。。。。。。。。。"); break; } getchar(); } return 0; } int FindNumber(char ch) // 此函数实现的功能是在用户输入一个大写字母后,能找出它是26个字母中的第几个字母 { int index; for (index = 0; index < 26; index++) { if (ch == lets [index]) break; } return index+1; }
tsing1996 2016-02-13
  • 打赏
  • 举报
回复
int main() { int t,i,j,m; char ch,n; scanf("%d",&t); getchar(); while(t--) { scanf("%c",&n); getchar(); if(n>='A'&&n<='Z') 加上两个getcgar(); 我试了可以 你可以试一下 .........................
iqy 2016-02-08
  • 打赏
  • 举报
回复
请问下楼主,有这种需求吗?
Akichillng 2016-02-07
  • 打赏
  • 举报
回复
引用 1 楼 lm_whales的回复:
打印什么式样的三角形? 直角 锐角? A AA AAA 还是 A AA AAA AAAA AAAAA
输入字母或者数字,如输入C,就打印第一行A,第二行ABA,第三行ABCBA的等腰三角形,这个我已经写好了,问题是while(t--),t输入一个数字,控制测试数据有几组,但是总是不能达到t组数据
lm_whales 2016-02-06
  • 打赏
  • 举报
回复
打印什么式样的三角形? 直角 锐角? A AA AAA 还是 A AA AAA AAAA AAAAA

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧