| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 624 人关注过本帖, 1 人收藏
标题:求指教!个人觉得思路是没错的,可是最后运行结果却是无限循环
只看楼主 加入收藏
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
结帖率:95%
收藏(1)
已结贴  问题点数:20 回复次数:5 
求指教!个人觉得思路是没错的,可是最后运行结果却是无限循环
//输入一个奇数,动态输出菱形
#include <stdio.h>
void main()
{    int i,j,m,n,k,s,p;
    int a[100][100];
    printf("please a number:\n");
    scanf("%d",&n);
    k=(n+1)/2;
    for(p=1;p>0;p++)//统计循环次数
    {    for(s=1;s<=n;s++)
        {    for(i=1;i<=n;i++)//用数组来确定空格和*的位置
            {    for(j=1;j<=i;j++)
                    {    if((i==s&&(j>=k-s+1&&j<=s+3))||(i==(s+k)&&(j>=s+1&&j<=n-s))||(i==k&&j==k))
                        {    a[i][j]=1;//a[i][j]=1和a[i][j]=0的本意是每循环一次,if(a[i][j]=1)    printf("*");
                                                                                //if(a[i][j]=0)    printf(" ");
                            printf("*");
                        }
                        else
                        {    a[i][j]=0;
                        printf(" ");
                        }     
                    }
            }
        }
        if(p%n==0)//保证每一行的空格加*一共为n个
        printf("\n");
    }
}
搜索更多相关主题的帖子: include please number 动态 统计 
2015-01-21 17:51
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:10 
你的菱形的各边参量是什么?你设了这么多变量,哪些是用来确定菱形形状的?

一片落叶掉进了回忆的流年。
2015-01-21 18:02
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
收藏
得分:0 
菱形的形状就是当i和j满足if的条件,即a[i][j]=1,是,输出*所构成的菱形
2015-01-21 19:01
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    int i,j,n;
    char a[100][100];
    printf("input n:");
    scanf("%d",&n);
    for (i=1;i<=(n+1)/2;i++)
    for (j=1;j<=n;j++)
    a[i][j]=' ';
    for (i=1;i<=(n+1)/2;i++)
    for (j=(n+1)/2-(i-1);j<=(n+1)/2+(i-1);j++)a[i][j]='*';
    for (i=1;i<=(n+1)/2;i++)
    {
    for (j=1;j<=n;j++)
    printf("%c",a[i][j]);
    printf("\n");
        }
        for (i=(n+1)/2+1;i<=n;i++)
        {
        for (j=1;j<=n;j++)
        printf("%c",a[n+1-i][j]);
        printf("\n");
            }
    return 0;
    }

一片落叶掉进了回忆的流年。
2015-01-21 20:18
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
收藏
得分:0 
嗯嗯,谢啦~~~
2015-01-21 21:26
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:10 
for(p=1;p>0;p++)//从一开始就死循环了,没看见你后面的代码改变p的值到小于0来退出循环,大概一直会p++到p溢出。

能编个毛线衣吗?
2015-01-21 22:05
快速回复:求指教!个人觉得思路是没错的,可是最后运行结果却是无限循环
数据加载中...
 
   



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

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