菱形问题会编译错误码
‘壹’ java打印菱形是不是有错误请高手指出 编译中 出现k找不到符号!!!!
for (k = 1; k <= i; k++) {
没有声明k,改为for (int k = 1; k <= i; k++) {
‘贰’ C语言打印菱形问题,会C的请进来帮下
#include"stdio.h"
int main() {
for(int i=-3;i<=3;i++){
for(int j=0;j<(i>0?i:-i);j++)
printf(" ");
for(j=0;j<(i>0?-2*i+7:2*i+7);j++)
printf("*");
printf("\n");
}
return 0;
}
够简练了吧?
编译通过
‘叁’ 数字控制菱形输出问题!
以菱形的中心为原点,边长为n的菱形的所有的星号都在以下直线上
x+y=n-1;x-y=n-1;x+y=-(n-1);x-y=-(n-1);
把菱形存在一个二维字符数组中,先把所有元素置为空格,然后把菱形的边所在的元素置为*。对于每一个菱形,在菱形的范围内,分4个象限处理:从第1象限开始x--,y++、到第2象限x--,y--、到第3象限x++,y--、到第4象限x++,y++。
所以很简单了
#include"conio.h"
#include"stdio.h"
#include"stdlib.h"
#definemaxlen40/*暂定最大边长为40,菱形宽度为79字符,命令行方式一行能显示的最大字符数为80*/
voidmain()
{
inti,j,state;/*state为象限值0-3代表1-4象限*/
intouter,inner;/*内外菱形的边长*/
chardiamond[2*maxlen-1][2*maxlen-1];/*存放菱形的字符数组*/
scanf("%d%d",&outer,&inner);/*读入变长*/
if(outer<inner)/*外<内,内外边长交换*/
{i=outer;outer=inner;inner=i;}
for(i=0;i<outer*2;i++)/*存放菱形的字符数组全置为空格*/
for(j=0;j<outer*2;j++)
diamond[i][j]='';
outer--;
inner--;
i=outer;j=0;
for(state=0;state<4;)/*画外菱形,从第1象限到第4象限*/
{diamond[i+outer][j+outer]='*';/*由于有坐标的变换,所以不能直接用[i][j],原坐标原点在菱形的中心,在新坐标下,原来的原点坐标为(n,n),n为边长*/
switch(state)
{
case0:
i--;j++;
if(j==outer)state++;
break;
case1:
i--;j--;
if(i==-outer)state++;
break;
case2:
i++;j--;
if(j==-outer)state++;
break;
case3:
i++;j++;
if(i==outer)state++;
break;
}
}
i=inner;j=0;
for(state=0;state<4;)/*画内菱形*/
{diamond[i+outer][j+outer]='*';
switch(state)
{
case0:
i--;j++;
if(j==inner)state++;
break;
case1:
i--;j--;
if(i==-inner)state++;
break;
case2:
i++;j--;
if(j==-inner)state++;
break;
case3:
i++;j++;
if(i==inner)state++;
break;
}
}
for(i=0;i<outer*2+1;i++)/*输出图像*/
{for(j=0;j<outer*2+1;j++)
printf("%c",diamond[i][j]);
printf("\n");
}
}
运行结果:图形没有问题吧
63
*
**
**
***
****
****
****
***
**
**
*
53
*
**
***
****
****
****
***
**
*
‘肆’ C++菱形继承,编译不过,为什么
菱形继承会出现顶层基类的重复初始化,举例说来: 类B继承类A,类C继承类A,类D继承类B和类C,这就是一个菱形结构,那么类A就会被初始化两次,为了防止这样的情况,就采用虚继承。
‘伍’ 急!用java编写的画菱形小应用程序编译通不过
你好好的调试,我想你会找到错误的