C语言 求教高手 用二维数组打印出以下三角(注意空格!!

我要二维数组的!!!!!!

第1个回答  2011-04-13
#include <iostream>
using namespace std;

int number(int a,int b)//求得第n行第k列的数据
{
int c=1,d;
for(d=a;d>0;--d)
c=c*d;
for(d=a-b;d>0;--d)
c=c/d;
for(d=b;d>0;--d)
c=c/d;
return c;
}

int main()
{
int n,k,m=30,i;//声明变量
for(n=0;n<=12;++n)//对行数进行循环
{
for(i=m-n;i>=0;--i)
cout<<' ';
for(k=0;k<=n;++k)//对列数进行循环
{
cout<<number(n,k);//输出数据
cout<<' ';
}
cout<<endl;
}
return 0;
}
可以打印到第12行,你自己可以改变。追问

额……麻烦你用 二维数组 做一个呗

追答

抱歉,刚开始没有注意……实际上,改用二维数组也不难,只要把C值改用二维数组存储起来就可!鉴于别人已经帮你写好了,我就不再帮忙了……

第2个回答  2011-04-13
#include<stdio.h>
#define Test 10
int main()
{
int test[Test][Test];
int i,j,k;
for(i=0;i<Test;i++)
{
test[i][0]=1;
test[i][i]=1;
}

for(j=1;j<Test-1;j++)
for(k=1;k<j+1;k++)
test[j+1][k]=test[j][k-1]+test[j][k];
for(k=0;k<Test;k++)
{

for(i=k;i<Test-1;i++)
printf(" ");
for(j=0;j<k+1;j++)
{
printf("%2d",test[k][j]);
if(j!=k)
printf(" ");
}
printf("\n");
}
return 0;
}
第3个回答  2011-04-16
for(i=0;i<5;i++)
for(j=0;j<11;j++)printf("%d",a[i][j]);
a[][] 中定义你的输出内容
第4个回答  2011-04-13
没看到是二维数组,帮修改下
#include <stdio.h>
#define N 13
int main()
{
int i;
int j;
int a[N][N];

for (i = 0; i < N; i++)
{
a[i][0] = 1;
a[i][i] = 1;
}

for (i = 2; i < N; i++)
for (j = 1; j < i; j++)
a[i][j] = a[i-1][j-1] + a[i-1][j];

for (i = 0; i < N; i++)
{
for (j = 0; j < (N * 3 - 3 * i); j++)
printf(" ");

for (j = 0; j <= i; j++)
printf("%-6d", a[i][j]);

printf("\n");
}

return 0;
}追问

编译有1个错:fatal error C1004: unexpected end of file found

追答

哦,忘记了,我这是VC

追问

我用的是VC++6.0

追答

请注意加上#include "stdafx.h" 这样就能编译过了
如果用vc的console application的话,写法如下
#include "stdafx.h"
#include "stdio.h"

#define N 13

void _tmain(int argc, _TCHAR* argv[])
{

int i;
int j;
int a[N][N];

for (i = 0; i < N; i++)
{
a[i][0] = 1;
a[i][i] = 1;
}

for (i = 2; i < N; i++)
for (j = 1; j < i; j++)
a[i][j] = a[i-1][j-1] + a[i-1][j];

for (i = 0; i < N; i++)
{
for (j = 0; j < (N * 3 - 3 * i); j++)
printf(" ");

for (j = 0; j <= i; j++)
printf("%-6d", a[i][j]);

printf("\n");
}
scanf("%d");

}

本回答被提问者采纳

高手求教!!!c语言中怎样读取命令行参数?
把main函数声明为int main(int argc,char *argv[])argc 是参数的个数 如:int main(int argc,char *argv[]){ printf("%s",argv[1]);} 这是一个简单的未做错误判断的echo函数,将上面的源程序编译连接为echo.exe,然后在命令提示符下输入echo hello 这样,argc=2,argv[0]为echo,argv[1]为...

求教高手一道数学题:设 x-ytan( az )=0,求 (∂^2 z)\/(∂y^2 ,好...
本体关键在于你懂不懂 arc tanx =多少的那个求导的公式。往里面一套就出来了

急!菜鸟求教高手 C语言中malloc具体如何用?试举例说明.
原型:extern void *malloc(unsigned int num_bytes);用法:#include <memory.h> 功能:分配长度为num_bytes字节的内存块 说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。举例:\/\/ malloc.c include <memory.h> include <s...

ThinkPHP数据库查询为什么没有显示结果,求教高手!
页面空白应该不是上面问题导致的,具体要看情况,参考以下建议:使用M("user") 替换 new Model("user"),并在下一行使用var_dump($select) 输出查看数据结构。如果页面空白,说明数据库 或者 user 模型存在问题。html中{:$select[0]['address']}这种形式读取数据,如果有数据,说明就是select()查询...

...自定义函数运行时出现‘index out of range'的情况,求教高手!!
1.第一行的line=file.readline() 这一行被浪费了。换句话说,文本中的第一行没有被处理 2.new_list=line.split() 这一行有问题,通常应该加一个判断 if not line.strip():break 因为,文本文件readline,最后一行可能为空行。你的net_list[2]就是因为空行造成的。所以split出来的结果是长度...

求教高手怎么用CSMate(CS中文输入法)!
1.在游戏安装目录的 \\cstrike\\config.cfg文件中加入一行: bind "F11" "exec Csay.cfg" ,如果是CZ可能要在\\czero\\config.cfg里加入.然后启动本程序,再启动游戏,进游戏选项设置中把F11相关的功能键清除(一定要确保已经清除,不然有可能不能正常输入).再进入游戏,如果是第一次使用 本软件进入游戏,应...

求教高手怎么用CSMate(CS中文输入法)!
在CSMate的输入界面中,你可以看到一个输入框和一些功能按钮。要开始输入,只需在输入框中键入拼音或词组的首字母。CSMate会根据你的输入智能匹配相应的汉字或词组,并显示在候选框中。你可以使用鼠标或键盘上的方向键选择需要的汉字或词组,然后按下空格键或回车键即可将其插入到文本中。除了基本的输入...

求教高手 梦璃诛仙单机架设教程。
Alt+X 关闭C语言 Shift快捷键 Shift+空格 半\\全角切换 Shift + Delete 永久删除所选项,而不将它放到“回收站”中。 拖动某一项时按 CTRL 复制所选项。 拖动某一项时按 CTRL + SHIFT 创建所选项目的快捷键。 WORD全套快捷键小技巧 CTRL+O 打开 CTRL+P 打印 CTRL+A 全选 CTRL+[\/] 对文字进行大小设置(在...

网络受限制,局域网(不上Internet)无法连接另一台计算机,求教高手!
②将Nbf.sys复制到C:\\Windows\\System32\\Drivers中;③开始→控制面板→网上邻居”→“网络连接”→“本地连接”(就是你目前使用中的局域网连接)上按右键→“属性”→“常规”→“安装”→“通讯协议”→→“添加”,此时就可以看到“NetBEUI Protocol”这一项(此项原来是没有的),选取NetBEUI之后,按...

相似回答
大家正在搜