1.在屏幕上输出以下图案:
思路分析:
在屏幕上打印" * ",1-6行下一行比上一行多俩个,6-11行下一行比上一行少俩个。
利用for 遍历打印。
#include<stdio.h>
#include<stdlib.h>
int main() {
for (int i = 1; i <= 7; ++i) {
for (int n = 1; n <= 2 * i - 1; ++n) {
printf("*");
}
printf("\n");
}
for (int i = 1; i <= 6; ++i) {
for (int n = 1; n <= 13 - 2 * i; ++n) {
printf("*");
}
printf("\n");
}
运行结果
2.
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222
思路分析:
首先要求出前5项的数值,并将它们储存起来
因为数值第一项是n,第二项为n10+第一项,第三项为n100+第二项…
所以我定义了一个函数
如果是第一项就乘1,第二项就乘10,第三项就乘100…
代码如下
int power(int x) {
int result=1;
for (int i = 1; i <= x; ++i) {
result *= 10;
}
return result;
}
然后我创建了一个数组来储存每一项的值,
最后附上全部代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//定义power去求每一项的值
int power(int x) {
int result=1;
for (int i = 1; i <= x; ++i) {
result *= 10;
}
return result;
}
int main() {
int arr[6] = { 0 };
int n;
int m = 0;
int sum = 0;
printf("请输入要求的数\n");
scanf("%d", &n);
//利用for循环来求值
for (int i = 1; i < 6; ++i) {
arr[0] = 0;//定义数组的第一项为0;
arr[i] = n * power(m) + arr[i-1];//数组的第二项为所求的第一项
m += 1;
sum += arr[i];//sum表示最后结果
}
printf("%d+%d+%d+%d+%d=%d",arr[1],arr[2],arr[3],arr[4],arr[5], sum);
system("pause");
return 0;
}
运行结果