专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

帮忙简化下,说下思路解决方案

发布时间:2011-06-28 16:17:42 文章来源:www.iduyao.cn 采编人员:星星草
帮忙简化下,说下思路
#include <stdio.h>
#define MAX 100+10
char s[MAX][MAX];
int main()
{
int n,i,j,k,t,a=0;
scanf("%d",&n);
k=4*n-3;
for(i=0;i<n;i++)
for(j=0;j<4*n-3;j++)
s[i][j]=' ';
for(i=n-1;i>=0;i--)
{
for(t=2*a;t<k;t++)
if(t%2==0)
s[i][t]='#';
k=k-2;
a++;
}
for(i=n-1;i>=0;i--)
{
for(j=0;j<4*n-3;j++)
printf("%c",s[i][j]);
printf("\n");
}
return 0;
}
//你输入3则
# # # # #
  # # #
  #
输入5,则
# # # # # # # # # 
  # # # # # # #
  # # # # #
  # # #
  #

------解决方案--------------------
两重循环呗
一个控制行,一个控制列

------解决方案--------------------
C/C++ code

#include <stdio.h>

int main( void )
{
    int i, j, flag;
    scanf("%d", &i);
    flag = i;
    for(; i > 0; --i)
    {
        for(j = 2 * i - 1; j > 0; --j)
        {
            printf("# ");
        }
        printf("\n  ");
    }
    return 0;
}

------解决方案--------------------
上面多了个变量,去掉了
C/C++ code

#include <stdio.h>

int main( void )
{
    int i, j;
    scanf("%d", &i);
    for(; i > 0; --i)
    {
        for(j = 2 * i - 1; j > 0; --j)
        {
            printf("# ");
        }
        printf("\n  ");
    }
    return 0;
}

------解决方案--------------------
#include <stdio.h>
#define MAX 110
char s[MAX][MAX];
int main()
{
int n,i,j,k,t,a=0;
scanf("%d",&n); //输入数字
k=4*n-3; //得到K

//下面这个for循环是为了将空格输入到s数组中你输入数字几就有几行而且全设成空格
for(i=0;i<n;i++)
for(j=0;j<4*n-3;j++)
s[i][j]=' ';
//隔一个空格输入一个#符号 而且是没输入一行上一行两头都减少两个字符(从最下面一行开始输入的因为i=n-1)
//最后剩一个
for(i=n-1;i>=0;i--)
{
for(t=2*a;t<k;t++)
if(t%2==0)
s[i][t]='#';
k=k-2;
a++;
}
//打印出结果
for(i=n-1;i>=0;i--)
{
for(j=0;j<4*n-3;j++)
printf("%c",s[i][j]);
printf("\n");
}
return 0;
}
当然你可以单步调试以查看s结果
------解决方案--------------------
# # # # # # # # # # # # # # #
` # # # # # # # # # # # # #
````# # # # # # # # # # # 
``````# # # # # # # # # 
```` ```# # # # # # # 
`` ```````# # # # # 
`` `````````# # # 
``` ``````````#
这是你的程序输入8 的时候输出的
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: