新手 求助帖

leifeng45995 2012-11-09 10:00:50
/*输入一个大写拼音字符如(C);则输出如下图金字塔:
A
ABA
ABCBA */
#include"stdio.h"
#include<stdlib.h>
void main()
{
int i,j,k,m,n;
char b;
char *p;
printf("Please enter the character:\n");
scanf("%c",&b);
n=b-'A';
for(i=1;i<=n+1;i++)//控制输出行数
{

for(j=0;j<=n-i;j++)//输出空格
printf(" ");
p=(char *)malloc(2*i*sizeof(char));//申请要输出的字符的内存
for(j=0;j<i;j++)
p[j]='A'+j; //顺序输入字符如:ABC
for(m=j,k=0;m<2*i;m++,k++)
p[m]=p[j-2]-k; //反序输入字符如:BA
for(j=0;j<=2*n;j++)
printf("%c",p[j]); //输出全部字符
printf("\n");
free(p); //释放内存
}
输出的结果多了很多其他字符,如:@
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-11-09
  • 打赏
  • 举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
proorck6 2012-11-09
  • 打赏
  • 举报
回复
单步调试 画出程序流程图 程序员也需要笔和纸,不明白的时候,画个图,或许就明白了。
图灵狗 2012-11-09
  • 打赏
  • 举报
回复
for(m=j,k=0;m<2*i;m++,k++)改为for(m=j,k=0;m<2*i-1;m++,k++)即可,多循环了一次。
leifeng45995 2012-11-09
  • 打赏
  • 举报
回复
代码最后还有个}copy漏掉了
转角天边 2012-11-09
  • 打赏
  • 举报
回复

这是运行结果
转角天边 2012-11-09
  • 打赏
  • 举报
回复
把你的代码改了下,自己看看

#include"stdio.h"
#include<stdlib.h>
void main()
{
	int i,j,k,m,n;
	char b;
	char *p;
	printf("Please enter the character:\n");
	scanf("%c",&b);
	n=b-'A';
	for(i=1;i<=n+1;i++)//控制输出行数
	{
		
		for(j=0;j<=n-i;j++)//输出空格
			printf(" ");
		p=(char *)malloc((2*i)*sizeof(char));//申请要输出的字符的内存
		for(j=0;j<i;j++)
			p[j]='A'+j;            //顺序输入字符如:ABC
		for(m=j,k=1;m<2*i;m++,k++)
			p[m]=p[j-1]-k;          //反序输入字符如:BA
		for(j=0;j<m-1;j++)
			printf("%c",p[j]);         //输出全部字符
		printf("\n");
		free(p);     //释放内存
	}
}
lbq199204 2012-11-09
  • 打赏
  • 举报
回复
引用 5 楼 lbq199204 的回复:
杨辉三角形?我这里是杨辉三角形的代码,你改一下吧!希望能帮到你。还有,我用的是数组实现的。 C/C++ code12345678910111213141516171819202122232425262728293031323334353637383940# include <stdio.h> int main(void){ int i,j,k; int a[……
还有这个可以输出任意一行的值。
lbq199204 2012-11-09
  • 打赏
  • 举报
回复
杨辉三角形?我这里是杨辉三角形的代码,你改一下吧!希望能帮到你。还有,我用的是数组实现的。

# include <stdio.h>

int main(void)
{
	int i,j,k;
	int a[10][10]={0};

	for (i=0; i<10; i++)
	{
		for (j=0; j<=i; j++)
		{
			if (j == 0)
			{
				a[i][j] = 1;
				printf("%d",a[i][j]);	
			}
			else if (j == i)
			{
				a[i][j] = 1;
				printf("%3d",a[i][j]);
			}
			else
			{
				a[i][j] = (a[i-1][j-1] + a[i-1][j]);
				printf("%4d",a[i][j]);
			}
		}
		printf("\n");
	}
	printf("\n\n");
	printf("请输入想输出的行号:");
	scanf("%d",&k);
	for (j=0; j<k; j++)
	{
		printf("%4d",a[k][j]);
	}
	printf("\n");
	return 0;
}

69,371

社区成员

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

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