


在 C 语言中打印出菱形图案,图案的大小由用户输入决定。
思路解析: 上半部分(包括中间行): 以 i 为当前行数,从 1 到中间行(n/2 + 1),空格逐渐减少,星号逐渐增加。 第 1 行打印最多空格,最后一行(中间行)打印最多星号。
下半部分: 下半部分与上半部分对称,从中间行向下,每行的空格逐渐增多,星号逐渐减少。
#include <stdio.h>
void printDiamond(int n)
{
int i, j;
// 上半部分
for (i = 1; i <= n / 2 + 1; i++)
{
// 打印空格
for (j = 1; j <= n / 2 + 1 - i; j++)
{
printf(" ");
}
// 打印星号
for (j = 1; j <= 2 * i - 1; j++)
{
printf("*");
}
printf("\n");
}
// 下半部分
for (i = n / 2; i >= 1; i--)
{
// 打印空格
for (j = 1; j <= n / 2 + 1 - i; j++)
{
printf(" ");
}
// 打印星号
for (j = 1; j <= 2 * i - 1; j++)
{
printf("*");
}
printf("\n");
}
}
int main()
{
int n;
printf("请输入一个奇数:");
scanf("%d", &n);
// 判断输入是否为奇数
if (n % 2 == 0 || n <= 1)
{
printf("请输入一个大于1的奇数。\n");
return 1; // 输入不合法,程序结束
}
printDiamond(n);
return 0;
}求出0~100000之间的所有“水仙花数”并输出。 “水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=13+53+3^3,则153是一个“水仙花数”。
思路解析: 遍历0到100000之间的所有数字对于每个数字:
#include <stdio.h>
#include <math.h>
int main()
{
int i = 0;
for(i=0; i<=99999; i++)
{
int count = 1;
int tmp = i;
int sum = 0;
//判断i是否为水仙花数
//1. 求判断数字的位数
while(tmp/10)
{
count++;
tmp = tmp/10;
}
//2. 计算每一位的次方和
tmp = i;
while(tmp)
{
sum += pow(tmp%10, count);
tmp = tmp/10;
}
//3. 判断
if(sum == i)
printf("%d ", i);
}
return 0;
}
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给n元,可以喝多少汽水(编程实现)。
思路分析:
代码如下:
#include <stdio.h>
int drinkSoda(int n)
{
int totalSoda = n; // 用n元钱可以买n瓶汽水
int emptyBottles = n; // 一开始有n个空瓶
while (emptyBottles >= 2)
{
// 可以用空瓶换汽水
int newSoda = emptyBottles / 2;
totalSoda += newSoda; // 总共喝掉的汽水数量增加
emptyBottles = emptyBottles % 2 + newSoda; // 剩余的空瓶数
}
return totalSoda;
}
int main()
{
int n;
printf("请输入钱数: ");
scanf("%d", &n);
int result = drinkSoda(n);
printf("你可以喝到的汽水总瓶数是: %d\n", result);
return 0;
}求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字, 例如:2+22+222+2222+22222
int main()
{
int a = 0;
int n = 0;
int i = 0;
int sum = 0;
int tmp = 0;
scanf("%d%d", &a, &n);
for(i=0; i<n; i++)
{
tmp = tmp*10+a;
sum += tmp;
}
printf("%d\n", sum);
return 0;
}变量说明: a:用户输入的一个数字,表示数字的单位。这个数字将被用来构造数列的每一项。
n:用户输入的一个整数,表示构造数列的项数(即重复的次数)。
i:循环计数器,用于控制循环的执行次数(即构造多少项)。
sum:累加器,用于累加数列中的每一项的值。
tmp:临时变量,用来构造数列中的当前项。
逻辑解析: