主题:请高手看下我这里哪里错了
safebook
[专家分:0] 发布于 2011-04-07 22:18:00
题目是比如输入4,依次类推
4 4 4 4 4 4 4
3 3 3 3 3
2 2 2
1
2 2 2
3 3 3 3 3
4 4 4 4 4 4 4
#include<stdio.h>
main()
{
int x,a[100][200],i,j;
printf("input hang=");
scanf("%d",&x);
for(i=0;i<x;i++)
{
for(j=1;j<=2*(x-i-1)+1;j++)
a[i][j]=x-i;
}
for(i=0;i<x;i++)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=x-1;i>=0;i--)
{
for(j=1;j<i+1;i++) printf(" ");
for(j=i+1;j<=2*(x-i)+1;j++);
printf("%d",a[i][j]);
printf("\n");
}
}
回复列表 (共16个回复)
沙发
fragileeye [专家分:1990] 发布于 2011-04-07 22:39:00
line 21: i++ -> j++;
还有些小错误自己改吧,仔细点。其实lz算法有点麻烦。想想怎么简化下、、
板凳
hereforc [专家分:210] 发布于 2011-04-07 22:59:00
最后几行哪三个for嵌套有很大问题 现改正如下 for(i=x-2;i>=0;i--)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
}
lz还是要多细心些
至于算法什么的就不说了
毕竟这种东西还是要不断编写代码才能得到好的么
3 楼
safebook [专家分:0] 发布于 2011-04-07 23:06:00
#include<stdio.h>
main()
{
int x,a[100][200],i,j;
printf("input hang=");
scanf("%d",&x);
for(i=0;i<x;i++)
{
for(j=1;j<=2*(x-i-1)+1;j++)
a[i][j]=x-i;
}
for(i=0;i<x;i++)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=x-2;i>=0;i--)
{
for(j=1;j<i+1;i++) printf(" ");
for(j=i+1;j<=2*(x-i-1)+1;j++);
printf("%d",a[i][j]);
printf("\n");
}
}
你看下,还是不行啊
4 楼
safebook [专家分:0] 发布于 2011-04-07 23:08:00
不懂啊
#include<stdio.h>
main()
{
int x,a[100][200],i,j;
printf("input hang=");
scanf("%d",&x);
for(i=0;i<x;i++)
{
for(j=1;j<=2*(x-i-1)+1;j++)
a[i][j]=x-i;
}
for(i=0;i<x;i++)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=x-2;i>=0;i--)
{
for(j=1;j<i+1;i++) printf(" ");
for(j=i+1;j<=2*(x-i-1)+1;j++);
printf("%d",a[i][j]);
printf("\n");
}
}
你看下,不行
5 楼
fisher_cs [专家分:10] 发布于 2011-04-07 23:26:00
#include<stdio.h>
/*
input:
output:
4 4 4 4 4 4 4
3 3 3 3 3
2 2 2
1
2 2 2
3 3 3 3 3
4 4 4 4 4 4 4
*/
int main(void)
{
int n;// = 4;
printf("input an integer between: 1 and 9: \n");
scanf("%d", &n);
int i=0;
int j=0;
for(i=1; i<=n; i++)
{
for(j=0; j<i-1; j++)
{
printf(" ");
}
for(j=2*(n-i+1)-1;j>0;j--)
{
printf("%d ", n-i+1);
}
printf("\n");
}
for(i=n-1; i>0; i--)
{
for(j=0; j<i-1; j++)
{
printf(" ");
}
for(j=2*(n-i+1)-1;j>0;j--)
{
printf("%d ", n-i+1);
}
printf("\n");
}
return 0;
}
6 楼
hereforc [专家分:210] 发布于 2011-04-07 23:50:00
大哥 你仔细点 是 {
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
不是 for(i=x-2;i>=0;i--)
{
for(j=1;j<i+1;i++) printf(" ");
for(j=i+1;j<=2*(x-i-1)+1;j++);
printf("%d",a[i][j]);
printf("\n");
}
}第二个for中是j=1不是j=i+1,你可一把我的复制过去啊
7 楼
safebook [专家分:0] 发布于 2011-04-08 13:00:00
怎么回事乱码啊,你运行下
#include<stdio.h>
main()
{
int x,a[100][200],i,j;
printf("input hang=");
scanf("%d",&x);
for(i=0;i<x;i++)
{
for(j=1;j<=2*(x-i-1)+1;j++)
a[i][j]=x-i;
}
for(i=0;i<x;i++)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=x-2;i>=0;i--)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++);
printf("%d",a[i][j]);
printf("\n");
}
return 0;
}
8 楼
safebook [专家分:0] 发布于 2011-04-08 13:18:00
#include<stdio.h>
main()
{
int x,a[100][200],i,j;
printf("input hang=");
scanf("%d",&x);
for(i=0;i<x;i++)
{
for(j=1;j<=2*(x-i-1)+1;j++)
a[i][j]=x-i;
}
for(i=0;i<x;i++)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=x-2;i>=0;i--)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++);
printf("%d",a[i][j]);
printf("\n");
}
}
看下这两个程序,明明一样的,但是上面一个运行出来是乱码
#include<stdio.h>
main()
{
int x,a[100][200],i,j;
printf("input hang=");
scanf("%d",&x);
for(i=0;i<x;i++)
{
for(j=1;j<=2*(x-i-1)+1;j++)
a[i][j]=x-i;
}
for(i=0;i<x;i++)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=x-2;i>=0;i--)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i-1)+1;j++)
printf("%d",a[i][j]);
printf("\n");
}
}
9 楼
爱缡的夏 [专家分:0] 发布于 2011-04-08 13:38:00
[code=c]
#include<stdio.h>
main()
{
int x,a[100][200],i,j;
printf("input hang=");
scanf("%d",&x);
for(i=0;i<x;i++)
{
for(j=1;j<=2*(x-i-1)+1;j++)
a[i][j]=x-i;
}
for(i=0;i<x;i++)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i)-1;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=x-1;i>=0;i--)
{
for(j=1;j<i+1;j++) printf(" ");
for(j=1;j<=2*(x-i)-1;j++)
printf("%d",a[i][j]);
printf("\n");
}
}[/code]
10 楼
safebook [专家分:0] 发布于 2011-04-08 17:31:00
我懂了,原来加了一个分号,在for(j=1;j<=2*(x-i)-1;j++);
不过还是感谢大家的帮忙。
我来回复