编译菱形
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++) //先打印上边的四行
{
for(j=1;j<=4-i;j++) //控制要打印的空格数量
printf(" ");
for(k=1;k<=2*i-1;k++) //控制要打印的星号数
printf("*");
printf("
");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++) //控制要打印的空格数
printf(" ");
for(k=1;k<=7-2*i;k++) //控制要打印的星号数
printf("*");
printf("
");
}
}
(1)编译菱形扩展阅读:
for循环
for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:
for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)
表达式
表达式1为初值表达式,用于在循环开始前为循环变量赋初值。
表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。
表达式3为循环控制变量修改表达式,它使for循环趋向结束。
循环体语句是在循环控制条件成立的情况下被反复执行的语句。
但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。
先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。
for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。
do
do循环结构,do 1 while⑵;的执行顺序是1->2->1...循环,2为循环条件。
while
while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。
⑵ sublime text3 编译并运行java,报错时乱码
那个是字符集乱码,你可以设置编码集为UTF-8就可以解决了!!
⑶ c语言程序设计输出菱形图!!!!
此题解法,我将这个菱形放在了一个二维数组中,因为用二维数组可以界定X的边界,比较方便一点。循环输出的时候,特别注意循环跳出的条件,你画个二维数组,体会一下里面的数学关系,多上机改改代码,呵呵。要特别注意q的用途哦。
#include<stdio.h>
voidmain()
{
#defineN7//定义二维数组的行和列
inti,j;
chara[N][N];
intq=N/2;//找到数组的中间列
chart,p;//定义输出字符,t代表X,p代表Y
printf("qingshuruX,Y: ");
scanf("%c,%c",&t,&p);//注意此处输入的时候,不要忘记“,”了哦
for(i=0;i<N;i++)//将二维数组的值全部先赋值为“空格”
for(j=0;j<N;j++)
a[i][j]='';
for(i=0;i<q;i++)//将菱形一分两半,这个是上半部分的输出,以中间列
{
//为开始,向两边扩展,为了输出X,注意i循环到q-1
a[i][q-i]=t;
a[i][q+i]=t;
for(j=(q-i+1);j<(q+i);j++)//以两边的X列为边界,输出Y
a[i][j]=p;
}
for(i=q;i<N;i++)//这个是下半部分的输出,i从q开始循环到最后
{
a[i][q-(N-1-i)]=t;//仍然是从中间列开始向两边扩散,输出X
a[i][q+(N-1-i)]=t;
for(j=(q-(N-1-i)+1);j<(q+(N-1-i));j++)//从X边界开始从做到右输出Y
a[i][j]=p;
}
for(i=0;i<N;i++)
{
{for(j=0;j<N;j++)
printf("%c",a[i][j]);}
printf(" ");
}
}
我这里输出的是标准的菱形,中间的Y的个数和你给的不一样,如果你想要你的那种结果,只需要在输出Y的时候,将循环的边界再减一个,就可以了,不过图形是会变形,不会是菱形了。
上机运行的时候,把这些汉字清理了吧,要不可能编译出问题,好运~
⑷ C++菱形继承,编译不过,为什么
菱形继承会出现顶层基类的重复初始化,举例说来: 类B继承类A,类C继承类A,类D继承类B和类C,这就是一个菱形结构,那么类A就会被初始化两次,为了防止这样的情况,就采用虚继承。
⑸ C++中如何避免菱形继承引发的警告错误(VS2005编译器)。
虚继承。
更一般的,使用聚合代替继承。
⑹ c语言输出空心菱形
void
main()
{
//输入任意一个100以内奇数n,输出一个n层菱形
int
i,
j;
int
row;
//输入的奇数(菱形的行数)
int
leftcol;//左边空格的列数;
int
center;//奇数的平均值
//此例以21为例
row
=
21;
center
=
row/2;
leftcol
=
center;
//菱形上半部分
for
(i=0;
i<center+1;
i++)
{
for
(j=0;
j<center-i;
j++)
{
printf("
");
}
for
(j=0;
j<=2*i;
j++)
{
printf("*");
}
printf("\n");
}
//菱形下半部分
for
(i=center;
i>0;
i--)
{
for
(j=center-i+1;
j>0;
j--)
{
printf("
");
}
for
(j=2*i-1;
j>0;
j--)
{
printf("*");
}
printf("\n");
}
return;
}
测试成功了,直接编译运行即可
⑺ C++如何打印菱形
C++ 代码如下:
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<"要得到的菱形的大小:"<<endl;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n-i;++j)
cout<<" ";
for(j=1;j<=i;++j)
cout<<"* ";
cout<<endl;
}
for( i=n;i>=1;--i)
{
for(int j=1;j<=n-i;++j)
cout<<" ";
for(j=1;j<=i;++j)
cout<<"* ";
cout<<endl;
}
return 0;
}
c++打印菱形图示例图:
1、上半层:
(7)编译菱形扩展阅读:
制作思路:
1、先来分析分割线上半部分的规律:
上半部分外层循环了4次,可以用一个循环来解决for(int i=0 ;i<4 ;i++)。
对比分析:
第一轮循环i=0的时候空格的打印次数是3,星星打印的次数是1
第二轮循环i=1的时候空格的打印次数是2,星星打印的次数是3。。
第三轮循环i=2的时候空格的打印次数是1,星星打印的次数是5。
第四轮循环i=3的时候空格的打印次数是0,星星打印的次数是7。
空格打印的循环次数随着外层循环次数的增加而减少,这样就很明显看出空格打印的循环和外层循环的规律:for(int j=0;j<3-i;j++)。
星星打印增加循环次数都是外层循环的次数增加次数的2倍,这样就很明显看出星星打印的循环和外层循环的规律:for(int k=0;k<1+2*i;k++)。
2、再来就是分析分割线下半部分的规律:
下半部分外层循环了3次,可以用一个循环来解决for(int i=0 ;i<3 ;i++)
第一轮循环i=0的时候空格的打印次数是1,星星打印的次数是5。
第二轮循环i=1的时候空格的打印次数是2,星星打印的次数是3。
第三轮循环i=2的时候空格的打印次数是3,星星打印的次数是1。
空格打印的循环次数随着外层循环次数的增加而增加,这样就很明显看出空格打印的循环和外层循环的规律:for(int j=0;j<1+i;j++)
星星打印循环次数随外层循环的增加而减少,减少的规律是外层增加的2倍,这样就很明显看出星星打印的循环和外层循环的规律:for(int k=0;k<5-2*i;k++)。
⑻ C语言 数字金字塔 "*"号摆成菱形
#include<stdio.h>
main()
{
int i,l,k,y;
printf("输入图1或图2\n");
scanf("%d",&y);
if(y==1)
{
printf("输入得数不要超过10\n");
scanf("%d",&k);
if(k>=1&&k<10)
{
for(i=1;i<=k;i )
{
for(l=0;l<i;l )
printf("%d",i);
printf("\n");
}
}
}
if(y==2)
{
printf("输入的数不要超过10\n");
scanf("%d",&k);
if(k>=1&&k<10)
{
for(i=1;i<=k;i )
{
for(l=0;l<i;l )
printf("*");
printf("\n");
}
for(i=1;i<=k-1;i )
{
for(l=0;l<k-i;l )
printf("*");
printf("\n");
}
}
}
}
⑼ c语言输出菱形
工具/材料
ubuntu+vim+gcc
- 01
首先,输入预处理指令#include <stdio.h>与函数原型void print(int n)。
其中,n表示行数。 - 02
然后,对输入的n进行提前判断,若小于0或为偶数,则结束打印。
- 03
接着对上半个菱形进行输出(包括最长的行)。使用两层循环进行输出,分别控制行数与行内的位置。
- 04
接着对下半个菱形进行输出(包括最长的行)。也使用两层循环进行输出,分别控制行数与行内的位置。
- 05
对n=5与n=7进行输出测试,代码如下。
- 06
编译运行后的结果如下
- 07
以下是所有的代码:
#include <stdio.h>
void print(int n)
{
//判断n是否符合正奇数的要求
if(n < 0 || n % 2 == 0)
//不符合则直接退出
return;
//对上半个菱形输出
int i = 1,j = 1;
//i控制行数
for(i = 1; i <= (n + 1) / 2; i++)
{
//j控制每一行的位置
//输出空格
for(j = 1; j <= (n+1)/2 - i; j++)
printf(" ");
//输出*
for(j = 1; j <= 2 * i - 1; j++)
printf("*");
//输出换行
printf(" ");
}
//输出下一半
//i控制行数
for(i = 1; i <= n/2; i++)
{
//j控制每一行的位置
//输出空格
for(j = 1; j <= i; j++)
printf(" ");
//输出*
for(j = 1; j <= n -2 * i; j++)
printf("*");
//输出换行
printf(" ");
}
}
//测试函数,测试n=5和n=7
int main()
{
printf("5 ");
print(5);
printf("7 ");
print(7);
return 0;
}
⑽ c语言数字菱形的程序设计
#include <stdio.h>
void main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
for(i=8;i>0;i--)
{
for(j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
}
不要一遇到问题就来问,这种这么简单首先要自己思考啦