有关C语言输出的一个菱形*号图案 这个是我的程序,基本思路就是从中间分两端,前和后 我也百了很多程序

写C的都是一个人一个思想,我想请大家帮我看一下,以我的思路我的这个程序错在哪里,build没错,但是运行结果就不对了#include<stdio.h>voidmain()... 写C的都是一个人一个思想,我想请大家帮我看一下,以我的思路我的这个程序错在哪里,build没错,但是运行结果就不对了

#include <stdio.h>
void main()
{
int i,j,k,n;
printf("王亚平,通信4班,102014104\n");
printf("input a number:\n");
scanf("%d",&n);
if (n%2==0)
{
printf("请输入奇数:\n");
scanf("%d",&n);
}
for (i=1;i<=n;i++)
{
if (i<=(n+1)/2)
for(i=1;i<=(n+1)/2;i++)
for (j=1;j=2*((n+1)/2-i);j++)
printf(" ");
for(k=1;k=2*i-1;k++)
printf("* ");
if(i>(n+1)/2)
for (i=(n+1)/2;i<=n;i++)
for (j=1;j=2*(i-(n+1)/2);j++)
printf(" ");
for(k=1;k=(2*i-1)-(i-(n+1)/2);k++)
printf("* ");
printf("\n");
}
}

我也问过老师了,老师好肤浅,告诉我把n换成i
求助,求助
好无奈我,老师说的我也不明白
求指导
展开
 我来答
305261187
2011-06-21 · 超过23用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:52.7万
展开全部
帮你改好了,好多处for用错,下半段的k条件有点小错误。还有注意排版!要让人耳目一新。。
#include <stdio.h>
void main()
{
int i,j,k,n;
printf("王亚平,通信4班,102014104\n");
printf("input a number:\n");
scanf("%d",&n);
if (n%2==0)
{
printf("请输入奇数:\n");
scanf("%d",&n);
}
for (i=1;i<=n;i++)
{
if (i<=(n+1)/2)
for(i=1;i<(n+1)/2;i++)
{
for (j=1;j<=2*((n+1)/2-i);j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("* ");
printf("\n");
}
if(i>(n+1)/2)
for (i=(n+1)/2;i<=n;i++)
{
for (j=1;j<=2*(i-(n+1)/2);j++)
printf(" ");
for(k=1;k<=(2*i-1)-4*(i-(n+1)/2);k++)
printf("* ");
printf("\n");
}
}
getch(); /* win -tc*/
}
更多追问追答
追问
哈哈,谢谢啊~那个for的我知道错在哪了

我还想问的就是,我这个程序出错,主要是在哪个方面,我发现我那个大括号啊,基本不会用啊~
追答
主要出错就大括号啊,还有下半段的那个for 里面K的条件。大括号多多编编就会了。
你编程的时候写出for或者if等等语句后就直接{},想然后把要执行的语句放进去就行了。
百度网友ad8bb83
2011-06-21 · TA获得超过4259个赞
知道大有可为答主
回答量:1469
采纳率:100%
帮助的人:1633万
展开全部
写程序虽然每个人都有每个人的思路,但是程序贵在高效、简单,呵呵

我这里有个,思路很简单

#include <stdio.h>
int main(int argc, char *argv[])
{
int i,j,k,n;
printf("请输入需要打印的图形的行数:");
scanf("%d",&n);
for (i=1;i<=n;i++) /*输出上半三角形 */
{
for (j=n;j>i;j--)
printf(" ");
for (k=0;k<2*i-1;k++)
printf("*");
printf("\n");
}
/* 输出下半三角形*/
for (i=n-1;i>0;i--)
{
for (j=n;j>i;j--)
printf(" ");
for (k=0;k<2*i-1;k++)
printf("*");
printf("\n");
}
return 0;
}
追问
谢谢啊~你是让那个空格数逐渐递减的么~
不过有一个小弊端,输入的数控制的是上半部分的行数,最后输出的总行数和输入的不同。
我想知道那最后那个return是什么意思,我试了下,没有也不影响运行,因为最近在补那个函数调用作业,额,希望别介意这种白痴问题啊~谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
2011-06-21 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4669万
展开全部
//新编一个给你,满意推下。
#include<stdio.h>
#define n 3
int main()
{
int i,j;
for(i=0;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i+1;j++)
printf("*");
printf("\n");
}
for(i=n-1;i>=0;i--)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i+1;j++)
printf("*");
printf("\n");
}
}
追问
嗯嗯,谢谢了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戚风b
2011-06-21 · TA获得超过203个赞
知道小有建树答主
回答量:178
采纳率:100%
帮助的人:113万
展开全部
你邮电的?
追问
通信的~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式