您的位置:首页 > 编程语言 > C语言/C++

C语言循环结构的应用---各种菱形

2013-12-20 23:35 295 查看
明天就要考C语言的机试了,今天把各种菱形都重撸了一遍...一个月前刚学循环时确实是觉得有点难的说...



打印图案,效果如图 [输入是奇数,我没有在OJ上提交过,不知道是否正确,如有错误 欢迎跟帖交流

#include <stdio.h>
#define abs(x) ((x)>0?(x):-(x))
int main()
{
int n,i,j,k,mid;
scanf("%d",&n);
mid=(n+1)/2;
for(i=0;i<n;i++)
{
for(j=1;j<=abs(mid-i-1)+1;j++) printf("*");
for(j=1;j<=mid-abs(mid-i-1)-1;j++) printf(" ");
for(j=mid-abs(mid-i-1)-1;j>=1;j--) printf(" ");
for(j=abs(mid-i-1)+1;j>=1;j--) printf("*");
printf("\n");
}
}




空心菱形[也是奇数 我没有在OJ上提交过,不知道是否正确,如有错误 欢迎跟帖交流

#include <stdio.h>
#define abs(x) ((x)>0?(x):-(x))
int main()
{
int n,i,j,mid;
scanf("%d",&n);
mid=(n+1)/2;
for(i=1;i<=n;i++)
{
for(j=1;j<=abs(mid-i);j++) printf(" ");
printf("*");
for(j=1;j<=((2*(i-1)-1)>2*(n-i)-1?2*(n-i)-1:(2*(i-1)-1));j++) printf(" ");
if(i!=1&&i!=n)
printf("*");
printf("\n");
}
}




1038 打印图案 这个提交通过了 

#include <stdio.h>
#define abs(x) ((x)>0?(x):-(x))
int main()
{
int n,i,j,k;
scanf("%d",&n);
for(i=1;i<=2*n-1;i++)
{
for(j=1;j<=abs(n-i);j++) printf(" ");
for(k=1;k<=((2*n-i)>i?i:(2*n-i));k++) printf("%d",k);
for(k=((2*n-i)>i?i:(2*n-i))-1;k>=1;k--) printf("%d",k);
printf("\n");
}
}



最简单的菱形 通过

#include <stdio.h>
#define abs(x) ((x)>0?(x):-(x))
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=1;i<=2*n+1;i++)
{
for(j=1;j<=abs(n+1-i);j++)
printf(" ");
for(j=1;j<=(n+1-abs(n+1-i))*2-1;j++)
printf("*");
printf("\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c