打印菱形
输入描述
13
输出描述
#include<stdio.h>
int main()
{
int line = 0;
printf("请输入要打印的行数:");
scanf("%d", &line);
//打印上半行
line = (line + 1) / 2;
int i = 0;
int j = 0;
for (i = 1; i <= line; i++)
{
for (j = 0; j < 2 * (line - i); j++)
{
printf(" ");//打印空格
}
for (j = 0; j < 2 * i - 1; j++)
{
printf("* ");//打印*
}
printf("\n\n");
}
//打印下半行
for (i = line - 1; i > 0; i--)
{
for (j = 0; j < 2 * (line - i); j++)
{
printf(" ");//打印空格
}
for (j = 0; j < 2 * i - 1; j++)
{
printf("* ");打印*
}
printf("\n\n");
}
return 0;
}
喝汽水问题
问题描述:
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。
#define N 2//定义常量几个空瓶换一瓶汽水
#define P 1//定义常量一瓶汽水的价格
//非递归
int EmptyBottle(int n)
{
int count=0;
while(n>1)
{
count += n/N;
n=n/N+n%N;//新的空瓶数=换的汽水数+之前不够换汽水剩余的空瓶数
}
return count;
}
//递归实现
//int EmptyBottle(int n)
//{
// int count=0;
// count=n/N;
// n=n/N+n%N;//新的空瓶数=换的汽水数+之前不够换汽水剩余的空瓶数
// if(n>1)
// return count+EmptyBottle(n);
// else
// return count;
//}
int main()
{
int money=0;
printf("请输入金额:");
scanf("%d",&money);
int n=money/P;//刚开始的汽水,也是开始的空瓶数
int ret = n+EmptyBottle(n);
//用钱买的汽水数+空瓶换的汽水数=一共能得到的汽水数
printf("一共能得到的汽水数:%d",ret);
return 0;
}