请问怎么用C#输出一个菱形,要求是用户输入一个数字,来控制这个菱形的大小。
3个回答
展开全部
public static void Main (string[] args) {
Console.WriteLine(请输入一个奇数);
int x=int.Parse (Console .ReadLine ());
if(x%2==0){
Console .WriteLine("您输入的是偶数,无法生成漂亮的菱形哦!");
}
string s = "";
for (int i = 0; i < x/2; i++) {
for (int j = 0; j<x/2+i+1; j++) {
if ((j == x/2 - i ) ||(j == x/2 + i ))
s += "*";
else
s += " ";
}
s += "\n";
}
for (int i = x/2; i < x; i++) {
for (int j =0;j<x; j++) {
if ((j == i - x/2 ) || (j == 3*x/2-i-1))
s += "*";
else
s += " ";
}
s += "\n";
}
Console.WriteLine (s);
}
Console.WriteLine(请输入一个奇数);
int x=int.Parse (Console .ReadLine ());
if(x%2==0){
Console .WriteLine("您输入的是偶数,无法生成漂亮的菱形哦!");
}
string s = "";
for (int i = 0; i < x/2; i++) {
for (int j = 0; j<x/2+i+1; j++) {
if ((j == x/2 - i ) ||(j == x/2 + i ))
s += "*";
else
s += " ";
}
s += "\n";
}
for (int i = x/2; i < x; i++) {
for (int j =0;j<x; j++) {
if ((j == i - x/2 ) || (j == 3*x/2-i-1))
s += "*";
else
s += " ";
}
s += "\n";
}
Console.WriteLine (s);
}
展开全部
#include "stdio.h"
#include "stdlib.h"
void main()
{
while(1)/*无限循环*/
{
int a=0/*输入的数*/,n=0/*用于控制行数的数*/,i1=0/*累加变量1*/,i2=0/*累加变量2*/;
printf("输入一个不小于0的整数作为行数,0为退出:");
scanf("%d",&a);
if(a>0)/*当a>0时执行循环*/
{
n=a/2+a%2;/*取总行数的一半,如果总行数为奇数则向上取整*/
for(i1=n-1;i1>=0;i1--)/*输出上半个三角形*/
{
printf("%-3d",n-i1);
for(i2=1;i2<=i1;i2++)/*输出当前行的空格*/
{printf(" ");}
for(i2=1;i2<=2*(n-i1)-1;i2++)/*输出当前行的星号*/
{printf("*");}
printf("\n");
}
i1=a%2;
for(;i1<=n-1;i1++)/*输出上下个三角形*/
{
printf("%-3d",i1+n+!(a%2));/*!(a%2),a为奇数时取0,偶数时取1*/
for(i2=1;i2<=i1;i2++)/*输出当前行的空格*/
{printf(" ");}
for(i2=1;i2<=2*(n-i1)-1;i2++)/*输出当前行的星号*/
{printf("*");}
printf("\n");
}
system("pause");/*按任意键继续*/
}
else if(a==0)/*当a=0时退出*/
{
exit(0);
}
system("cls");/*清屏*/
}
}
#include "stdlib.h"
void main()
{
while(1)/*无限循环*/
{
int a=0/*输入的数*/,n=0/*用于控制行数的数*/,i1=0/*累加变量1*/,i2=0/*累加变量2*/;
printf("输入一个不小于0的整数作为行数,0为退出:");
scanf("%d",&a);
if(a>0)/*当a>0时执行循环*/
{
n=a/2+a%2;/*取总行数的一半,如果总行数为奇数则向上取整*/
for(i1=n-1;i1>=0;i1--)/*输出上半个三角形*/
{
printf("%-3d",n-i1);
for(i2=1;i2<=i1;i2++)/*输出当前行的空格*/
{printf(" ");}
for(i2=1;i2<=2*(n-i1)-1;i2++)/*输出当前行的星号*/
{printf("*");}
printf("\n");
}
i1=a%2;
for(;i1<=n-1;i1++)/*输出上下个三角形*/
{
printf("%-3d",i1+n+!(a%2));/*!(a%2),a为奇数时取0,偶数时取1*/
for(i2=1;i2<=i1;i2++)/*输出当前行的空格*/
{printf(" ");}
for(i2=1;i2<=2*(n-i1)-1;i2++)/*输出当前行的星号*/
{printf("*");}
printf("\n");
}
system("pause");/*按任意键继续*/
}
else if(a==0)/*当a=0时退出*/
{
exit(0);
}
system("cls");/*清屏*/
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-01
展开全部
使用for循环,分2次循环,第一次循环从小到大,第二次循环从大到小~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询