文章目录
- 10道简单C语言算法题
-
- 1.输出99成法表
- 2.输出斐波那契数列
- 3.输出100以内的素数
- 4.求一个数的因子之和
- 4.求一个数的因子之和进阶
- 5.完数
- 6.水仙花
- 7.多项式求和
- 8.关机程序
- 9.打印杨辉三角形
- 10.冒泡排序
10道简单C语言算法题
1.输出99成法表
//99乘法表
#include
int main(){
int i,j;
for(i=1;i<=9;i++){ //控制行
for(j=1;j<=i;j++){
printf("%d*%d=%d ",i,j,i*j); //控制列
}
printf("\n");
}
}
2.输出斐波那契数列
#include
int main(){
long int f1,f2;
f1=f2=1;
int i;
for(i=1;i<=20;i++){
printf("%12d %12d ",f1,f2);
if(i%2==0){
printf("\n");
}
f1=f1+f2;
f2=f1+f2;
}
}
3.输出100以内的素数
#include
int main(){
int i,j,flag,h;
flag=1;
for(i=2;i<=100;i++){
flag=1;
for(j=2;j*j<=i;j++){
if(i%j==0){
flag=0;
break;
}
}
if(flag==1){
printf("%d ",i);
}
}
}
4.求一个数的因子之和
#include
int main()
{
long n, s = 0;
int i;
printf("请输入一个整数:");
scanf("%ld", &n);
for (i = 1; i < n; i++){
if (n % i == 0)
s=s+i;
}
printf("这个数的因子之和为:%ld", s);
return 0;
}
4.求一个数的因子之和进阶
#include
#include
int main()
{
long n, s = 0;
int i;
scanf("%ld", &n);
for (i = 1; i <= sqrt(n); i++) {
if (n % i == 0)
if (i == n / i)
s=s+i;
else
s = s + i + n / i;
}
printf("%ld", s - n);
return 0;
}
5.完数
#include
int main(){
int p[80];
int i,num,count,s,c=0;
int MaxNum=10000;
for(num=2;num<MaxNum;num++){
count=0;
s=num;
for(i=1;i<num/2+1;i++){
if(num%i==0){
p[count++]=i;
s=s-i;
}
}
if(0==s){
printf("%4d是一个完数,因子是:%d=%d",num,num,p[0]);
for(i=1;i<count;i++){
printf("+%d",p[i]);
}
printf("\n");
c++;
}
}
printf("\n共找到%d个完数。\n",c);
}
6.水仙花
#include
int main()
{
int hun, ten, ind, n;
printf("result is:");
for( n=100; n<1000; n++ )
{
hun = n / 100;
ten = (n-hun*100) / 10;
ind = n % 10;
if(n == hun*hun*hun + ten*ten*ten + ind*ind*ind)
printf("%d ", n);
}
printf("\n");
return 0;
}
7.多项式求和
#include
int main()
{
int sign = 1;
double deno = 2.0, sum = 1.0, term;
while(deno <= 100)
{
sign = -sign;
sum =sum +sign/deno;
deno =deno + 1;
}
printf("%f\n", sum);
return 0;
}
8.关机程序
#include
#include
#include
int main()
{
char input[20];
system ("shutdown -s -t 60");
again:
printf ("你的电脑将在60秒之后关机,如果输入我是pig,就取消关机。\n");
scanf ("%s",input);
printf("%s",input);
if (strcmp(input,"我是pig") == 0 )
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
9.打印杨辉三角形
#include
int main()
{
int i,j,triangle[8][8];
for(i = 0; i < 8; i++)
for(j = 0; j < 8; j++)
triangle[i][j] = 1;
for(i = 2; i < 8; i++)
{
for(j = 1; j < i; j++)
{
triangle[i][j] = triangle[i-1][j]+triangle[i-1][j-1];
}
}
for(i = 0; i < 8; i++)
{
for(j = 0; j <= i; j++)
printf("%-4d",triangle[i][j]);
printf("\n");
}
}
10.冒泡排序
#include
#include
int main()
{
int a[10] = {5,1,6,9,8,3,4,6,10,7};
int temp= 0;
for(int i=0;i<10;i++)
{
for(int j=i+1;j<10;j++)
{
if(a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(int i=0;i<10;i++)
{
printf("%d ",a[i]);
}
system("pause");
}