- 在屏幕上输出以下图案:
/*
/***
/*****
/*******
/*********
/***********
/*************
/***********
/*********
/*******
/*****
/***
/*
方法一:利用switch函数
#include <stdio.h>
#include <stdlib.h>
int main(){
int i=0;
for(i=1;i<14;++i){
switch(i){
case 1:
case 13:printf("*\n");break;
case 2:
case 12:printf("***\n");break;
case 3:
case 11:printf("*****\n");break;
case 4:
case 10:printf("*******\n");break;
case 5:
case 9:printf("*********\n");break;
case 6:
case 8:printf("***********\n");break;
case 7:printf("*************\n");break;
}
}
system("pause");
return 0;
}
方法二:利用for语句来实现,由于图案按照等差数列方式排列,所以可以利用等差数列的通式的知识来实现。
#include <stdio.h>
#include <stdlib.h>
int main(){
int i,j;
int n=14;
for(i=1;i<=n;++i) {
for(j=1;j<=(2*i-1)&&j<=(27-2*i);++j)
printf("*");
printf("\n");
}
system("pause");
return 0;
}
运行结果:
- 求出0~999之间的所有“水仙花数”并输出。
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
for(i=100;i<1000;++i){
int a = i / 100;
int b = i %100 /10;
int c = i %100 % 10;
if(i== a*a*a + b*b*b + c*c*c){
printf("%d\n",i);
}
system("pause");
return 0;
}
运行结果:
- 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字。
#include <stdio.h>
#include <stdlib.h>
int main(){
int a;
int sum = 0;
printf("请输入一个数:");
scanf("%d",&a);
int b = 11 * a;
int c = 111 * a;
int d = 1111 * a;
int e = 11111 * a;
sum = a + b + c + d + e;
printf("sum = %d\n",sum);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int Sn(int a){
int sum = 0;
sum = a + 11*a + 111*a + 1111*a + 11111*a;
return sum;
}
int main(){
printf("%d\n",Sn(2));
system("pause");
return 0;
}
运行结果: