一道和打印字符有关的程序题
2011-03-17 10:16
239 查看
Problem 字符打印
Description:
给你一个数字,请打印字符如下:
1
*
2
…
.*.
…
3
*****
*…*
*.*.*
*…*
*****
Input:
每测试例子中,只包含一个整数。当录入0时,程序结束。
Output:
每一个测试例子,输出相对应的字符图形
Sample Input:
1
2
3
4
Sample Output:
1
*
2
…
.*.
…
3
*****
*…*
*.*.*
*…*
*****
4
…….
.*****.
.*…*.
.*.*.*.
.*…*.
.*****.
…….
思路很多,以下是我的解题思路,仅供大家参考(代码可能不够严谨,没有注释,很抱歉^_^)
Code:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n)
{
char a[100][100];
int m;
int j, k,z,q,h;
int p = 0;
int s=0;
m = 2*n-1;
q = z = m;
h = n;
h++;
if(n%2 == 0)
{
for(j = 0; j < m; j++)
{
for(k = 0; k < m; k++)
a[j][k] = '.';
}
}
else
{
for(j = 0; j < m; j++)
{
for(k = 0; k < m; k++)
a[j][k] = '*';
}
}
m = m-2;
s++;
j = k = s ;
p++;
h++;
while(m > 0)
{
if(h%2 != 0)
{
for(j=s; j <z-p; j++)
{
for(k=s; k <z-p; k++)
a[j][k] = '.';
}
}
else
{
for(j=s; j <z-p; j++)
{
for(k =s; k <z-p; k++)
a[j][k] = '*';
}
}
m = m-2;
s++;
j = k = s ;
p++;
h++;
}
for(j = 0; j < q; j++)
{
for(k = 0; k < q; k++)
{
printf("%c",a[j][k]);
}
printf("/n");
}
scanf("%d",&n);
}
return 0;
}
Description:
给你一个数字,请打印字符如下:
1
*
2
…
.*.
…
3
*****
*…*
*.*.*
*…*
*****
Input:
每测试例子中,只包含一个整数。当录入0时,程序结束。
Output:
每一个测试例子,输出相对应的字符图形
Sample Input:
1
2
3
4
Sample Output:
1
*
2
…
.*.
…
3
*****
*…*
*.*.*
*…*
*****
4
…….
.*****.
.*…*.
.*.*.*.
.*…*.
.*****.
…….
思路很多,以下是我的解题思路,仅供大家参考(代码可能不够严谨,没有注释,很抱歉^_^)
Code:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n)
{
char a[100][100];
int m;
int j, k,z,q,h;
int p = 0;
int s=0;
m = 2*n-1;
q = z = m;
h = n;
h++;
if(n%2 == 0)
{
for(j = 0; j < m; j++)
{
for(k = 0; k < m; k++)
a[j][k] = '.';
}
}
else
{
for(j = 0; j < m; j++)
{
for(k = 0; k < m; k++)
a[j][k] = '*';
}
}
m = m-2;
s++;
j = k = s ;
p++;
h++;
while(m > 0)
{
if(h%2 != 0)
{
for(j=s; j <z-p; j++)
{
for(k=s; k <z-p; k++)
a[j][k] = '.';
}
}
else
{
for(j=s; j <z-p; j++)
{
for(k =s; k <z-p; k++)
a[j][k] = '*';
}
}
m = m-2;
s++;
j = k = s ;
p++;
h++;
}
for(j = 0; j < q; j++)
{
for(k = 0; k < q; k++)
{
printf("%c",a[j][k]);
}
printf("/n");
}
scanf("%d",&n);
}
return 0;
}
相关文章推荐
- 《C和指针》上的一道读取、打印字符的简单程序
- 通过编写一个程序,来说明字符数组 以及操作字符数组的函数的用法。该程序读入一组文本行,并把最长的文本行打印出来。
- 趣味程序之打印字符图案系列
- 【程序27】利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
- 从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt
- 程序中 不可打印字符
- 8.2 习题编写一个程序,在遇到EOF之前,把输入作为字符流读取,程序需要打印每个输入的字符及其相应的ASCLL十进制..........
- 编写一个程序读入一行输入,然后反向打印该行,您可以把输入存储在一个char数组中: 假定该行不超过255个字符。回忆一下,您可以使用具有%c说明符的scanf()从输入中一次 读入一个字符,而且当您按下回车键时会产生换行符(/n)
- 练习 1-14 编写一个程序,打印输入中各个字符出现频度的直方图
- 编写一个程序。该程序读取输入直到遇到#字符。使程序打印每个输入的字符以及他的十进制ASCII码。每行打印8个字符/编码对。
- 使用缓冲流读取试题文件,每次显示试题文件中的一道题目。读取到字符“*”时候暂停读取,等待用户从键盘输入答案。用户做完全部题目后,程序给出用户的得分。Test.txt如下:
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符。
- 简单的程序日志打印函数WriteLog,适用于vc等,含宽字符。
- 一道有关球赛队员分配的C++程序题目
- java中将输入的字符打印出来,当输入bye退出程序
- 编写一个程序,打印长度大于80个字符的所有输入行
- 一道有关球赛队员分配的C++程序题目
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符
- 一道有关球赛队员分配的C++程序题目