当前位置: 代码迷 >> C语言 >> 来做个简单的题
  详细解决方案

来做个简单的题

热度:187   发布时间:2006-08-07 19:00:53.0

#include<stdio.h>
char a=0,b,c,d=65,e=0,f=1,g=0;
main(){a==0?a=getchar(),getchar(),b=c=a-65:1;c>0&&e==0?putchar(' '),c--:(e=1,g<f?putchar(d++),g++,a=1:(a==1?d-=2,a=-1:d--,d>64?putchar(d):(putchar(10),e=0,g=0,d=65,f++,b--,c=b)));b==-1?a=0,f=1,main():main();}

老K呢..来玩一个,

俺没想到好算法,你有没

[此贴子已经被作者于2006-8-7 19:06:53编辑过]


----------------解决方案--------------------------------------------------------
以下是引用zz578在2006-8-7 16:08:34的发言:

求人不如靠己,这是在班上想的:
#include<stdio.h>
int main(void)
{
int n,u,m,b;
char ch1,ch2;
printf("Plese enter a char(enter 1 to quit):_\b");
while(scanf("%c",&ch1),ch1!='1')
{
for(n=0;n<=ch1-'A';n++)
{
for(b=ch1-'A';b>n;b--)
printf(" ");
for(u=0,ch2='A';u<=n;u++)
printf("%c",ch2++);
for(m=0,ch2-=1;m<n;m++)
printf("%c",--ch2);
printf("\n");
}
printf("Plese enter a char:_\b");
}
printf("\nDone!");
getchar();
getchar();
return 0;
}


我喜欢这句话,你看,你现在不是做出来了,呵呵.斑竹果然厉害,用意不会白费.


----------------解决方案--------------------------------------------------------

还是斑竹厉害,随便写写也可以

,一个子都没看懂,俺刚学俩月了就学了点循环

[此贴子已经被作者于2006-8-7 19:44:04编辑过]


----------------解决方案--------------------------------------------------------

就是啊太黑了.没想法了.


----------------解决方案--------------------------------------------------------
以下是引用无心剑在2006-8-7 17:17:37的发言:

我写了一个程序,请大家指正!
#include <stdio.h>

int main()
{
int n,i,j,k;
char c;
printf("Please enter a char:\n");
scanf("%c",&c);
n=c-64; //确定层数
if(n<=0||n>26) //确定是否为大写字母
printf("Data is error!\n");
else
{
for(i=0;i<n;i++)//控制打印层数的循环
{
for(j=0;j<(n-i-1);j++)//打印空格的循环
printf(" ");
for(k=0;k<=i;k++)//按升序打印字符的循环
printf("%c",65+k);
for(k=i-1;k>=0;k--)//按降序打印字符的循环
printf("%c",65+k);
printf("\n");
}
}
return 0;
}

谢谢,但误解我意思了,我要的是等边三角形,不是直角金字塔.替您改了


----------------解决方案--------------------------------------------------------
我只是随便点一下,居然买啦!
----------------解决方案--------------------------------------------------------

牛人很多阿。


----------------解决方案--------------------------------------------------------
#include "stdio.h"
#include "conio.h"
#include "string.h"
int col,i,ch;
char str[52];
int main(void)
{
int j,k;
if(i==0)
ch=getchar(),col=ch-'A'+1,i++,main();
else if(i<=col)
{
for(j=0;j<51;str[j]=' ',j++);
memset(&str[(k=j=col-1)],64+i,1);
for(ch=63+i;ch>='A';memset(&str[--j],ch,1),memset(&str[++k],ch,1),ch--);
i++,puts(str),main();
}
else getch();
return 0;
}
这个BT算法一般,没办法了。想了一晚上也只能改到这样了。


----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{ int i,j,n,m,t=0;
char c,a='A';
c=getchar();
m=c-'A'+1;
n=m*2-1;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
if(j>n-i-t)
if(j<=n-i-t+i)printf("%c",a++);
else printf("%c",--a-1);
else printf(" ");
}
printf("\n");
a='A';
t++;
}
getch();}


很土的办法...
----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include<conio.h>
main( )
{
char i,j,k,s[]=" A ";
k=getchar();
for(i='A';i<=k;i++)
for(puts(s),j=1;s[j];j++)
if(s[j]!=' ')++s[j];
else if(s[j+1]=='A')s[j]='A';
else if(s[j-1]=='B')s[j]='A';
getch();
}

[此贴子已经被作者于2006-8-10 8:52:58编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案