#include <stdio.h>
#include <string.h>
#define HEIGHT 7 // 根據下面定義,每個字母高度均是7行
const char *letters[] = {
"\
\########@\
\## @\
\## @\
\###### @\
\## @\
\## @\
\## @\
",
"\
\####@\
\ ## @\
\ ## @\
\ ## @\
\ ## @\
\ ## @\
\####@\
",
"\
\ ###### @\
\## ##@\
\## @\
\ ###### @\
\ ##@\
\## ##@\
\ ###### @\
",
"\
\## ##@\
\## ##@\
\## ##@\
\#########@\
\## ##@\
\## ##@\
\## ##@\
",
"\
\ ###### @\
\## ##@\
\## @\
\## @\
\## @\
\## ##@\
\ ###### @\
"
};
int main()
{
int i, j;
int gap;
printf("請輸入字母的間隔(空格數):");
scanf("%d", &gap);
// 一行一行列印
for (i = 0; i < HEIGHT; i++)
{
// 列印所有字母的某一行
for (j = 0; j < 5; j++)
{
// k 用于迭代每一行的‘#’字符
int k = 0;
// 計算出該字母每一行有多少個字符
int len = strlen(letters[j]) / HEIGHT;
// 計算當前列印第幾行
int line = i * len;
// @標志著該行結束
while (letters[j][line+k] != '@')
{
putchar(letters[j][line+k]);
k++;
}
// 列印字母間的間隔(空格)
int temp = gap;
while (temp--)
{
putchar(' ');
}
}
putchar('\n');
}
return 0;
}
這串代碼里面初始化代碼反斜杠\和@是什么意思
uj5u.com熱心網友回復:
行末的\表示續行,\#是會報錯。uj5u.com熱心網友回復:
注釋說的很清楚// @標志著該行結束
uj5u.com熱心網友回復:
個人不喜歡這樣的編程風格,太不直接了。uj5u.com熱心網友回復:
#include <stdio.h>
#include <string.h>
#define HEIGHT 7 // 根據下面定義,每個字母高度均是7行
const char *letters[] = {
"########@\
## @\
## @\
###### @\
## @\
## @\
## @",
"####@\
## @\
## @\
## @\
## @\
## @\
####@",
" ###### @\
## ##@\
## @\
###### @\
##@\
## ##@\
###### @",
"## ##@\
## ##@\
## ##@\
#########@\
## ##@\
## ##@\
## ##@",
" ###### @\
## ##@\
## @\
## @\
## @\
## ##@\
###### @\
"
};
int main()
{
int i, j, gap;
printf("請輸入字母的間隔(空格數):");
scanf("%d", &gap);
// 一行一行列印
for ( i = 0; i < HEIGHT; i++ ) {
// 列印所有字母的某一行
for (j = 0; j < 5; j++) {
// k 用于迭代每一行的‘#’字符
int k = 0;
// 計算出該字母每一行有多少個字符
int len = strlen(letters[j]) / HEIGHT;
// 計算當前列印第幾行
int line = i * len;
// @標志著該行結束
while (letters[j][line+k] != '@') {
putchar(letters[j][line+k]);
k++;
}
// 列印字母間的間隔(空格)
int temp = gap;
while (temp--) {
putchar(' ');
}
}
putchar('\n');
}
return 0;
}
這個程式可以運行,修改了定義字符的前面的“\”
uj5u.com熱心網友回復:
行末的 \ 表示換行,@在注釋寫了是換行的意思,但\#是會報錯的!!!uj5u.com熱心網友回復:
"\n"就是換行轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9537.html
標籤:新手樂園
