请问怎么用C#输出一个菱形,要求是用户输入一个数字,来控制这个菱形的大小。

 我来答
百度网友4e4f3b6
推荐于2018-05-22 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:116万
展开全部
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);
}
Kunono
2012-12-01 · 超过18用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:42.1万
展开全部
#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");/*清屏*/
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-01
展开全部
使用for循环,分2次循环,第一次循环从小到大,第二次循环从大到小~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式