1. 输出英文字母的整数编码
#include <stdio.h>
int main(void)
{
char ch;
/* 输出小写字母的整数编码 */
for (ch = 'a'; ch <= 'z'; ++ch)
{
printf("The integer value for %c is %d.\n", ch, ch);
}
/* 输出大写字母的整数编码 */
for (ch = 'A'; ch <= 'Z'; ++ch)
{
printf("The integer value for %c is %d.\n", ch, ch);
}
return 0;
}
正如前面说过的那样,字符是以整数形式存储的,所以可以用 ++ch 得到下一个字符的编码。而 ch <= 'z' 这个表达式,其实也是使用它们的整数编码进行比较的。不过,这里我假设了您的计算机使用的编码中,英文字母是按升序排列的。如果您的计算机使用的编码中,英文字母是乱序/降序排列的,则此程序不通用。
2. 根据用户输入的整数长度,用星号“*”画出一个矩形。例如:
3
***
* *
***
7
*******
* *
* *
* *
* *
* *
*******
解决方案:将图形分解为三个部分(第一行,中间有空格的那些行,最后一行)分别输出。
#include <stdio.h>
int main(void)
{
int len, hollow, i;
printf("Please input the length of the square: ");
scanf("%d", &len);
/* 输出第一行星号 */
for ( i = 0; i != len; ++i )
{
putchar('*'); /* 输出一个星号 */
}
putchar('\n'); /* 换行 */
/* 输出中间部分 */
hollow = len - 2; /* 每行的空格数等于 len - 2 */
/* 一共有 len - 2 行需要输出星号和空格 */
for ( i = 0; i != hollow; ++i )
{
int j;
putchar('*');
/* 输出 len - 2 个空格 */
for ( j = 0; j != hollow; ++j )
{
putchar(' ');
}
printf("*\n");
}
/* 输出最后一行星号 */
for ( i = 0; i != len; ++i )
{
putchar('*');
}
putchar('\n'); /* 换行 */
return 0;
}
该程序使用三个循环分别输出第一行,中间部分,以及最后一行。putchar 是标准函数库中定义的函数,其作用是输出一个字符。putchar 的函数原型位于 stdio.h 中。
本文版权归 蚂蚁的 C/C++ 标准编程 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。