如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
一个打印菱形图案的C语言程序
1.空心l菱形
/*
fileType:.c
fileNmae:diamond空心菱形
author:xiaobing
date:2012年11月08日21点
*/
#include<stdio.h>
intmain(void){
inti,j,k;
//上半空心菱形
for(i=1;i<=10;i++){//控制行数10行
for(k=10;k>i;k--){//第一行9空格1*i=28空格2*
printf("");
}
//当i=1时由第25行代码输出*
if(i==1){}
else{
printf("*");
}
//空心空格个数打印024616个
for(j=1;j<2*i-2;j++){
printf("");
}
printf("*");
printf("\n");
}
//下空心菱形
for(i=1;i<=9;i++){//去掉最长行只有9行
//空格增多123...9
for(k=1;k<=i;k++){
printf("");
}
//最后一行*号由代码43行执行
if(i==9){}
else{
printf("*");
}
//空心空格个数打印1513....1注意空格是15开始1结束
for(j=1;j<=17-2*i;j++){//i=9时候打印0个空格
printf("");
}
printf("*");//打印每行后出现的*
printf("\n");//换行
}
}
2.实心菱形
总结了一下:
//这是做简单的,不考虑任何算法,傻X
#include<stdio.h>
intmain()
{
printf("*\n***\n*****\n*******\n*****\n***\n*\n");
}
最简短的程序估计就是这个了
//C版本的:
#include<stdio.h>
intmain()
{
inti=0;
for(;i<9;i++)
{
printf("%*s\n",((i<5)?(i+5):(13-i)),"*********"+((i<5)?(8-2*i):(2*i-8)));
}
return0;
}
//C++版本的:
#include<iostream>
usingnamespacestd;
intmain()
{
for(inti=0;i<9;i++)
{
cout<<""+((i<5)?i:(8-i))<<"*********"+((i<5)?(8-2*i):(2*i-8))<<endl;
}
return0;
}
//双重嵌套再循环
#include<stdio.h>
#include<math.h>
voidmain()
{
intn,i,j;
printf("n=");
scanf("%d",&n);
for(i=0;i<(n*2+1);i++)
{
for(j=0;j<fabs(i-n);j++)printf("");
for(j=0;j<(2*(n-fabs(i-n))+1);j++)printf("*");
printf("\n");
}
}
//再来,统一求和判断,不分上下
#include<stdio.h>
voidmain()
{
inti,j,n;
printf("n=?\n");
scanf("%d",&n);
for(i=0;i<2*n+1;i++)
{
for(j=0;j<2*n+1;j++)
{
if(i+j>=n&&i+j<=3*n&&i-j>=-n&&i-j<=n)printf("*");
elseprintf("");
}
printf("\n");
}
}
//正负判断方法
#include<stdio.h>
#include<math.h>
#defineN5
voidmain()
{
inti,j;
for(i=-N;i<=N;i++)
{
for(j=-N;j<=N;j++)
{
if(abs(i)+abs(j)<=N)
printf("*");
else
printf("");
}
printf("\n");
}
getchar();
}
as****16
实名认证
内容提供者
最近下载