兩個一維陣列怎么撰寫楊輝三角
求指導
uj5u.com熱心網友回復:
百度超級多的,不用一維陣列都可以uj5u.com熱心網友回復:
就是用回圈控制空格和字符數jiu?xinguj5u.com熱心網友回復:
必須要用兩個一維陣列嗎?uj5u.com熱心網友回復:
嗯呢,倆個一維陣列,,,
uj5u.com熱心網友回復:
可以一層一層往下推下去uj5u.com熱心網友回復:
我寫下試試
uj5u.com熱心網友回復:
#include<stdio.h>
int n;
int in[1005],out[1005];//in[]包括上一層的資料,out[]用來計算本層的資料
int main(){
scanf("%d",&n);//輸入需要輸出的層數
if(n==1)printf("1\n");
else if(n==2){
printf("1\n");
printf("1 1\n");
}
else{
printf("1\n");
printf("1 1\n");//輸出了前兩層并且從第三層開始算;
in[1]=in[2]=1;//初始化上一層的資料
for(int i=3;i<=n;i++){//計算第i層資料資料
//memset(out,0,sizeof(out));
out[1]=out[i]=1;
for(int j=2;j<i;j++)out[j]=in[j-1]+in[j];//計算下一層的第二位到第i-1
for(int j=1;j<=i;j++)printf("%d ",out[j]);//輸出
printf("\n");
for(int j=1;j<=n;j++)in[j]=out[j];//將本層資料移到下一層的上一層資料
}
}
return 0;
}
uj5u.com熱心網友回復:
會了會了,謝謝啦。。
uj5u.com熱心網友回復:
可以把陣列的資料型別改一下,這個在大一點的資料下會超資料范圍
uj5u.com熱心網友回復:
嗯嗯,我試試,謝謝啦uj5u.com熱心網友回復:
1 #include<stdio.h>2 int main()
3 {
4 int n,i,j,a[100];
5 printf("請輸入行數n:");
6 scanf("%d",&n);
7 printf(" 1");
8 printf("\n");
9 a[1]=a[2]=1;
10 printf("%3d%3d\n",a[1],a[2]);
11 for(i=3;i<=n;i++)
12 {
13 a[1]=a[i]=1;
14 for(j=i-1;j>1;j--)
15 a[j]=a[j]+a[j-1];
16 for(j=1;j<=i;j++)
17 printf("%3d",a[j]);
18 printf("\n");
19 }
20 return 0;
21 }//沒有注釋將就看吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146143.html
標籤:C語言
下一篇:求助看一下哪里錯了
