一、以第14列为对称轴,输出星号。输入一个正整数n(n<=14),输出n行星号。
其中,第一行为13个空格后接一个星号,第二行为12个空格后接3个星号…。
【输入形式】输入一个整数n(n<=14)
【输出形式】按照规则输出n行星号
【样例输入】
【样例输出】
可以从图中看出
1.空格数量a与行数i的关系a=14-i
2.“*”数目b与行数i构成的关系是b=2×i-1,循环后打印空格``
代码如下
#include<stdio.h>
int main()
{
int n;
scanf_s("%d", &n);
int i,j,k;
for (i = 1;i <= n;i++)//大循环
{
for (j = 1;j <= 14 - i;j++)
printf(" ");//循环打印空格
for (k = 1;k <=2 * i - 1;k++)
printf("*");
printf("\n");//一轮循环完打印一次回车
}
return 0;
}
二、有1,2…n个数字(1<=n<=9),能组成多少个互不相同且无重复数字的二位数?都是多少?
输入输出说明:
输入:一行一个数,表示n
处处:一行一个数,表示满足条件的二位数的个数
程序分析:可填在十位、个位的数字都是1,2…n。组成所有的排列后再去掉不满足条件的排列。
思路:
1.大循环就是十位数从1到n
2.小循环搞个位数,如果个位数跟十位数不相同就累加
代码如下
#include<stdio.h>
int main()
{
int n;
scanf_s("%d", &n);
int i, j,m,sum=0;
for (i = 1;i <= n;i++)
{
for (j = 1;j <= n;j++)
{
m = 10 * i + j;
if (i != j)
sum++;//如果个位数和十位数数字不同就累加
}
}
printf("%d", sum);
return 0;
}