******小小目录******
一、大小写转换
二、从尾到头
三、冰雹猜想
四、水仙花数
五、百钱百鸡
六、九九乘法表
一、大小写转换
分析:在ASCII码表中,26个英文字母的ASCII码值相差32(小写字母比对应的大写字母大32)。当从键盘输入大写字母时,在输出时加上32,并且以%C格式输出,就能转换为小写。
代码实现:
#include
int main()
{
char c;
printf("输入一个字母:");
scanf("%c",&c);
if(c>&#61;&#39;A&#39;&&c<&#61;&#39;Z&#39;)
{
c&#61;c&#43;32;
printf("%c\\n",c);
}
else if(c>&#61;&#39;a&#39;&&c<&#61;&#39;z&#39;)
{
c&#61;c-32;
printf("%c\\n",c);
}
return 0;
}
运行截图&#xff1a;
二、从尾到头
描述&#xff1a;从键盘输入一个三位的整数num,将其个、十、百位倒序生成一个数字输出&#xff0c;例如&#xff1a;若输入123&#xff0c;则输出321。
分析&#xff1a;个位&#xff1a;对10取模&#xff1b;
十位&#xff1a;除以10之后对10取模
百位&#xff1a;除以100
代码实现&#xff1a;
#include
int main()
{
int num;
int a, b, c;
printf("请输入一个整数&#xff1a;\\n");
scanf_s("%d", &num);
a &#61; num % 10;
b &#61; num/10 % 10;
c &#61; num /100;
printf("%d\\n", 100 * a &#43; 10 * b &#43; c);
return 0;
}
运行截图&#xff1a;
三、冰雹猜想
描述&#xff1a;以一个正整数n为例&#xff0c;如果n为偶数&#xff0c;就将它变为n/2&#xff1b;如果除后变为奇数则乘以3再加1&#xff0c;将得到的新自然数按照此规则计算&#xff0c;若干次后得到的结果必然为1。
分析&#xff1a;
&#xff08;1&#xff09;先定义一个整型变量n来存数字&#xff0c;然后再定义一个整型变量count作为计数器&#xff0c;输出数字时显示在数字前作为序号&#xff1b;
&#xff08;2&#xff09;从键盘接收一个自然数后直接进入do…while循环&#xff1b;
&#xff08;3&#xff09;根据奇偶性不同&#xff0c;执行不同操作&#xff0c;当n&#61;1时退出循环&#xff1b;
&#xff08;4&#xff09;当n为奇数时&#xff0c;把n乘以3再加1&#xff1b;当n为偶数时&#xff0c;把n除以2。
代码实现&#xff1a;
#include
int main()
{
int n;
int count &#61; 1;
printf("please input a number:");
scanf_s("%d", &n);
do {
if (n % 2)
{
n &#61; n * 3 &#43; 1;
printf("(%d):%d\\n", count&#43;&#43;, n);
}
else
{
n /&#61; 2;
printf("(%d):%d\\n", count&#43;&#43;, n);
}
} while (n !&#61; 1);
return 0;
}
运行截图&#xff1a;
四、水仙花数
描述&#xff1a;水仙花数就是一个三位数&#xff0c;它每一位数字的3次幂之和都等于它本身。
分析&#xff1a;
&#xff08;1&#xff09;确定取值范围是100到999&#xff0c;控制取值范围用for循环结构语句&#xff1b;
&#xff08;2&#xff09;将个位、十位、百位拆分&#xff0c;求各位数字的立方和&#xff1b;
&#xff08;3&#xff09;求出各位数字的立方和&#xff0c;判断它与数本身是否相等&#xff0c;若相等&#xff0c;则此数是水仙花数&#xff0c;否则不是水仙花数。
代码实现&#xff1a;
#include
int main()
{
int num;
int a, b, c;
printf("水仙花数&#xff1a;\\n");
for (num &#61; 100; num <&#61; 999; num&#43;&#43;)
{
a &#61; num % 10;
b &#61; num / 10 % 10;
c &#61; num / 100;
if (num &#61;&#61; (a * a * a &#43; b * b * b &#43; c * c * c))
printf("%d ", num);
}
printf("\\n");
return 0;
}
运行截图&#xff1a;
五、百钱百鸡
描述&#xff1a;一只公鸡值五钱&#xff0c;一只母鸡值三钱&#xff0c;三只小鸡值一钱&#xff0c;现在要用百钱买百鸡&#xff0c;请问公鸡、母鸡、小鸡各多少只&#xff1f;
分析&#xff1a;
&#xff08;1&#xff09;先定义三个整型变量&#xff0c;分别用来存储公鸡&#xff0c;母鸡和小鸡&#xff1b;
&#xff08;2&#xff09;第一层for循环控制公鸡的数量&#xff0c;第二层for循环控制母鸡的数量&#xff0c;第三层for循环控制小鸡的数量&#xff1b;
&#xff08;3&#xff09;根据三层循环筛选合理方案&#xff0c;即满足“cock&#43;hen&#43;chicken&#61;100"和”5cock&#43;3hen&#43;chicken/3&#61;100"的方案。
代码实现&#xff1a;
#include
int main()
{
int cock, hen, chicken;
for(cock&#61;0;cock<&#61;20;cock&#43;&#43;)
for(hen&#61;0;hen<&#61;30;hen&#43;&#43;)
for (chicken &#61; 0; chicken <&#61; 100; chicken&#43;&#43;)
{
if ((5 * cock &#43; 3 * hen &#43; chicken / 3.0 &#61;&#61; 100) && (cock &#43; hen &#43; chicken &#61;&#61; 100))
printf("cock&#61;%2d,hen&#61;%2d,chicken&#61;%2d\\n", cock, hen, chicken);
}
return 0;
}
运行截图&#xff1a;
六、九九乘法表
分析&#xff1a;
&#xff08;1&#xff09;定义整型变量i来控制函数的输出&#xff0c;定义整型变量j控制等式数量的输出&#xff1b;
&#xff08;2&#xff09;第一个for循环用来控制乘法表中每行的第一个因子和表的行数&#xff0c;很明显i取值范围为1到9&#xff1b;
&#xff08;3&#xff09;第二个for循环中变量j取值范围的确定建立在第一个for循环的基础上&#xff0c;它的最大取值是第一个for循环中变量的值&#xff0c;&#xff08;j的取值范围根据行数变化&#xff0c;运行到第几行&#xff0c;j的最大值就是几&#xff1b;
&#xff08;4&#xff09;为了控制格式&#xff0c;将乘法表分行&#xff0c;需要在每行的末尾输出一个换行符。
代码实现&#xff1a;
#include
int main()
{
int i, j;
for (i &#61; 1; i <&#61; 9; i&#43;&#43;)
{
for (j &#61; 1; j <&#61; i; j&#43;&#43;)
printf("%d*%d&#61;%d ", i, j, i * j);
printf("\\n");
}
return 0;
}
运行截图&#xff1a;