1、求斐波那契数列1,1,2,3,5,8……前20项之和
#include<stdio.h>
int main()
{
int i,j,k,t=2;
i=j=1;
printf("%d %d\n",i,j);
for(k=0;k<9;k++)
{
i=i+j;
j=i+j;
t=t+i+j;
printf("%d %d\n",i,j);
}
printf("总和为:%d",t);
}
2、编程输出1000之内的所有完数,并统计完数的个数
一个数如果恰好等于它的因子之和(因子指除本身之外的约数),这个数就称为“完数”。例如:6的因子为1、2、3,而6=1+2+3,因此6是“完数”。
#include<stdio.h>
int main()
{
int i,j,s=0,flag=0;
for(i=1;i<1000;i++)
{
s=0;
for(j=1;j<i;j++)
{
if(i%j==0)
s=s+j;
}
if(i==s)
{
flag++;
printf("%d\n",i);
}
}
printf("完数个数:%d",flag);
}
3、编写函数delete函数,其功能是删除含有n个数的整型数组a中,下标为i位置的元素,请编写delete函数,并在主函数中调用。
#include<stdio.h>
int main()
{
int n,i,j;
int a[5];
void delete(int x[],int n,int k);
printf("输入5个元素\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("输入要删除元素的下标i\n");
scanf("%d",&j);
delete(a,5,j);
printf("结果");
for(i=0;i<5-1;i++)
printf("%d",a[i]);
}
void delete(int a[],int n,int k)
{
int i,j;
for(i=0;i<n;i++)
{
if(i==k)
{
for(j=i;j<n;j++)
a[j]=a[j+1];
}
}
}
4、编写函数fun,其功能是利用冒泡法,将一个整数数组由小到大进行排序,在main函数中从键盘输入数组元素,调用fun函数排序,然后输出排序后的数组
#include<stdio.h>
int main()
{
int a[5],i;
void fun(int a[],int n);
for(i=0;i<5;i++)
scanf("%d",&a[i]);
fun(a,5);
for(i=0;i<5;i++)
printf("%d ",a[i]);
}
void fun(int a[],int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
5、编写函数fun,其功能为求100-,300之间(包含100和300)所有整数中各位数字之和为x(x为一个正整数)的整数个数,要求从main函数输入x的值,并输出符合条件的整数个数。例如100-300之间各位数字之和为5的整数有104,113,122,131, 140,203,212,221,230,即从主函数中输入5,则应输出9
#include<stdio.h>
int main()
{
int fun( int x);
int n;
scanf("%d",&n);
printf("%d",fun(n));
}
int fun( int x)
{
int i,flag=0;
for(i=100;i<=300;i++)
if(i%10+i%100/10+i/100==x)
flag++;
return flag;
}
6、有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
#include <stdio.h>
int main()
{
int a[11]={1,2,3,4,5,6,7,8,9,10};
int i,t,m;
printf("输入一个数:\n");
scanf("%d",&m);
for(i=0;i<11;i++)
{
if(m<a[i])
{
t=m;m=a[i];a[i]=t;
}
else if(m>=a[9])
a[10]=m;
}
printf("排序后:\n");
for(i=0;i<11;i++)
printf("%d ",a[i]);
return 0;
}
7、求100-200之间所有的素数,并输出。素数是只能被1和自身整除的数
#include<stdio.h>
int main()
{
int i,j,flag;
for(i=101;i<200;i++)
{
flag=1;
for(j=2;j<i;j++)
{
if(i%j==0)
flag=0;
}
if(flag==1)
printf("%d ",i);
}
}
8、将含有10个数的整型数组由小到大排序
#include<stdio.h>
int main ()
{
int a[10];
int i,j,temp;
printf("请输入数组的10个元素\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10-1;i++)
for(j=0;j<10-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
9、编程求解马克思手稿中的数学题:有30个人,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?
#include <stdio.h>
void main()
{
int x,y,z;
for(x=1;x<16;x++)
for(y=1;y<25;y++)
for(z=1;z<30;z++)
{
if(x+y+z==30&&3*x+2*y+z==50)
printf("%d %d %d\n",x,y,z);
}
}
10、计算100~200之间的所有素数之和,判别一个数是否是素数请用给定的函数实现。
函数原型为:int fun(int m);
说明:
参数:m 是要进行判断的数;
返回值:若数 m 是素数,则返回值为1;否则返回值为0。
#include <stdio.h>
void main()
{
int fun(int m);
int i,sum=0;
for(i=101;i<200;i++)
{
if(fun(i)==1)
{
sum=sum+i;
printf("%d ",i);
}
}
printf("素数和:%d",sum);
}
int fun(int m)
{
int i,flag=1;
for(i=2;i<m;i++)
{
if(m%i==0)
flag=0;
}
return flag;
}