| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 374 人关注过本帖
标题:C的一道小题 (03) 逻辑错误 请求指点
只看楼主 加入收藏
d6230619
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-11-12
收藏
 问题点数:0 回复次数:3 
C的一道小题 (03) 逻辑错误 请求指点
用户输入行数.输出菱形.(菱形的宽和高相等且为奇数,至少5行.)
n=5
  x
 x x
x   x
 x x
  x

为啥我编的一运行就是满天星呢?
程序代码:
#include <stdio.h>
void main ()
{
    int i,j,n;
    printf ("输入菱形的宽度n:\n");
    scanf ("%d",&n);
    while (n<5||n%2==0)
    {
        printf ("输入错误,请重输:");
        scanf ("%d",&n);
    }
    for (i=1;i<=n/2+1;i++)
    {
        if (i=1)
        {
            for (j=1;j<=(n/2+1-i);j++)
                printf (" ");
            printf ("*");
        }
        else
        {
            for (j=1;j<=(n/2+1-i);j++)
                printf (" ");
            printf ("*");
            for (j=1;j<=(i*2-3);j++)
                printf (" ");
            printf ("*\n");
        }
    }
    for (i=n/2;i>0;i--)
    {
        if (i=1)
        {
            for (j=1;j<=(n/2+1-i);j++)
                printf (" ");
            printf ("*\n");
        }
        else
        {
            for (j=1;j<=(n/2+1-i);j++)
                printf (" ");
            printf ("*");
            for (j=1;j<=(i*2-3);j++)
                printf (" ");
            printf ("*\n");
        }
    }
}




 

[ 本帖最后由 d6230619 于 2010-11-19 20:29 编辑 ]
搜索更多相关主题的帖子: 逻辑 请求 
2010-11-19 20:26
gaochizhen33
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:114
专家分:101
注 册:2010-11-4
收藏
得分:0 
没仔细看 感觉比我这个还乱
程序代码:
#include"stdio.h"
int main()

{
    int i,j,k,m;
    int l=0;
    printf("input the number:\n");
    while(1)
    {
        scanf("%d",&k);
        if(k % 2 == 0)
            printf("wrong,again\n");
        else
            break;
    }
    i=k/2+1;
    for(j = 1; j <= i; j++)
    {   
        for(m = 1;m <= k; m++)
         {
             if(m == (i+l)||m == (i-l))
                 printf("*");
             else
                 printf(" ");
         }
         printf("\n");
         l++;
    }
    for(j = i+1; j <= k; j++)
    {   
        for(m = 1;m <= k; m++)
         {
             if(m == (i+l-2)||m == (i-l+2))
                 printf("*");
             else
                 printf(" ");
         }
         printf("\n");
         l--;
    }
    return 0;
}
这个应该行
2010-11-19 22:22
d6230619
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-11-12
收藏
得分:0 
哈哈   我看看先...  不过脑袋比较乱..迷糊的要死..

<<<<<<谦>>>>>>
2010-11-19 23:25
d6230619
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-11-12
收藏
得分:0 
谢了!  启发很大...   

不过我还是没搞明白我那个错哪了..

<<<<<<谦>>>>>>
2010-11-19 23:40
快速回复:C的一道小题 (03) 逻辑错误 请求指点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028982 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved