1.在屏幕上输出由*组成的菱形
2.求出所有三位数的水仙花数并输出
3.求Sn=a+aa+aaa+aaaa+aaaaa
前五项之和,a为一数字
4.编写程序,从标准输入读取C源代码,并验证所有的花号都正确成对出现
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int i, j, k, line;
printf("请输入要打印的行数:");
scanf("%d", &line);
for (i = 0; i <= (line - 1) / 2; i++)
{
for (j = 0; j <= (line - 3) / 2 - i; j++)
{
printf(" ");
}
for (k = 0; k <= 2 * i; k++)
{
printf("*");
}
printf("\n");
}//上半部分打印完成,包括中间行
for (i = 0; i <= (line) / 2; i++)
{
for (j = 0; j <= i; j++)
{
printf(" ");
}
for (k = 0; k <= line - 3 - 2 * i; k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
int main() //输出100~999之间的水仙花数
{
int i = 0;
int a = 0;
int b = 0;
for(i=100; i<=999; i++)
{
int sum = 0;
int tmp = i;
int count = 0;
while(tmp)//确定count的大小,即确定
{
count++;
tmp=tmp/10;//因为i取值在100~999之间,故count恒为3
}
tmp = i;
while(tmp)
{
pow(a, b);
if(tmp%10 != 0)
sum += pow(tmp%10, count);//pow用来计算x的y次方
tmp = tmp/10;
}
if(i == sum)//判断其余各项的3次方之和是否等于本身
{
printf("%d ", i);
}
}
return 0;
}
//求a前五项和,a+aa+aaa+aaaa+aaaaa
int main()
{
int a = 0;
int n = 0;
int sum = 0;
int i = 0;
int tmp = 0;
printf("请输所求和的数字以及重复求和次数(用空格隔开):");
scanf("%d%d", &a, &n);// a为所求和数,n用来确定求前几项的和
for (i = 0; i < n; i++)
{
tmp = tmp * 10 + a;
sum += tmp;
}
printf("sum = %d\n", sum);
return 0;
}
int main()//编写程序从标准输入读取C源代码,并验证花括号都正确的成对出现
{
int ch = 0;
int count = 0;
while((ch = getchar()) != EOF)//EOF
{
if (ch == '}'&&count == 0)
{
printf("不匹配\n"); //当遇到}但计数器为0,输出不匹配,即}在{前边
return 0;//?
}
if(ch == '{')
count++; //当遇到{时,计数器+1
if (ch == '}'&& count != 0)//当遇到}且计数器不为0时,计数器-1
count--;
}
if(count == 0)
{
printf("匹配\n");
}
else
{
printf("不匹配\n");
}
return 0;
}