c语言输出空心菱形
目描述向标准输出上打印一些用ASCII字符组成的图形。输入输入为多个奇数n,1<n<100,至文件尾结束。输出输出为多个n层的空心菱形,任意两个图形之间有一个空行分隔,格...
目描述
向标准输出上打印一些用ASCII字符组成的图形。
输入
输入为多个奇数n,1<n<100,至文件尾结束。
输出
输出为多个n层的空心菱形,任意两个图形之间有一个空行分隔,格式见sample。
样例输入
3
7
样例输出
*
* *
*
*
* *
* *
* *
* *
* *
* 展开
向标准输出上打印一些用ASCII字符组成的图形。
输入
输入为多个奇数n,1<n<100,至文件尾结束。
输出
输出为多个n层的空心菱形,任意两个图形之间有一个空行分隔,格式见sample。
样例输入
3
7
样例输出
*
* *
*
*
* *
* *
* *
* *
* *
* 展开
5个回答
展开全部
用最简单的方法,好理解,但是代码多了一点:
public static void main(String[] args) {
//空心菱形上部分
for (int hui = 0; hui < 7; hui++) {
for (int shou = 0; shou < 6 - hui; shou++) {
System.out.print(" ");//菱形外空部分(上面)
}
for (int tuo = 0; tuo < 1; tuo++) {
System.out.print("*");
}
if (hui != 0) {//等于0时不运行,比前面的“*”上少一个
for (int hu = 0; hu < hui * 2 - 1; hu++) {
System.out.print(" ");//菱形内空部分(上面)
}
for (int hu = 0; hu < 1; hu++) {
System.out.print("*");
}
}
System.out.println();
}
//空心菱形下部分
for (int soso = 0; soso < 7; soso++) {
for (int sos = 0; sos < soso; sos++) {
System.out.print(" ");//菱形外空部分(下面)
}
for (int so = 0; so < 1; so++) {
System.out.print("*");
}
if (soso != 6) {//等于6时不运行,减掉最后请多余的“*”
for (int so = 0; so < (7 - soso) * 2 - 3; so++) {
System.out.print(" ");//菱形内空部分(下面)
}
for (int so = 0; so < 1; so++) {
System.out.print("*");
}
}
System.out.println();
}
}
}
public static void main(String[] args) {
//空心菱形上部分
for (int hui = 0; hui < 7; hui++) {
for (int shou = 0; shou < 6 - hui; shou++) {
System.out.print(" ");//菱形外空部分(上面)
}
for (int tuo = 0; tuo < 1; tuo++) {
System.out.print("*");
}
if (hui != 0) {//等于0时不运行,比前面的“*”上少一个
for (int hu = 0; hu < hui * 2 - 1; hu++) {
System.out.print(" ");//菱形内空部分(上面)
}
for (int hu = 0; hu < 1; hu++) {
System.out.print("*");
}
}
System.out.println();
}
//空心菱形下部分
for (int soso = 0; soso < 7; soso++) {
for (int sos = 0; sos < soso; sos++) {
System.out.print(" ");//菱形外空部分(下面)
}
for (int so = 0; so < 1; so++) {
System.out.print("*");
}
if (soso != 6) {//等于6时不运行,减掉最后请多余的“*”
for (int so = 0; so < (7 - soso) * 2 - 3; so++) {
System.out.print(" ");//菱形内空部分(下面)
}
for (int so = 0; so < 1; so++) {
System.out.print("*");
}
}
System.out.println();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
测试成功了,直接编译运行即可
{
//输入任意一个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;
}
测试成功了,直接编译运行即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
char i,ci,j,cj,n,x,a[20];
printf("Enter some odd(0<n<100,0 end)...\n");
i=0;
while(1){
scanf("%d",a+i);
if(a[i++]==0) break;
}
printf("\n\n");
for(n=0;a[n];n++){
for(x=a[n]/2+1,i=1,ci=0;i;++ci<x ? i++ : i--){
printf("%*.*s",48-i,1,"");
for(j=1,cj=i;j;--cj>0 ? j++ : j--)
printf("%c",j==1 ? '*' : ' ');
printf("\n");
}
printf("\n");
}
}
#include "stdio.h"
void main(void){
char i,ci,j,cj,n,x,a[20];
printf("Enter some odd(0<n<100,0 end)...\n");
i=0;
while(1){
scanf("%d",a+i);
if(a[i++]==0) break;
}
printf("\n\n");
for(n=0;a[n];n++){
for(x=a[n]/2+1,i=1,ci=0;i;++ci<x ? i++ : i--){
printf("%*.*s",48-i,1,"");
for(j=1,cj=i;j;--cj>0 ? j++ : j--)
printf("%c",j==1 ? '*' : ' ');
printf("\n");
}
printf("\n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int i,j,k,line,m;
printf("请输入行数:");
scanf("%d",&line);
m=(line+1)/2;
for(i=1;i<=m;i++)
{
for(k=0;k<m-i;k++)
{
printf(" ");
}
printf("*");
if(i==1){printf("\n");continue;}
for(j=0;j<2*i-3;j++)
{
printf(" ");
}
printf("*");
printf("\n");
}
for(i=m-1;i>0;i--)
{
for(k=0;k<m-i;k++)
{
printf(" ");
}
printf("*");
if(i==1){printf("\n");continue;}
for(j=0;j<2*i-3;j++)
{
printf(" ");
}
printf("*");
printf("\n");
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询