1.阶乘
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,sum=0,p=1,n;
scanf("%d",&n);
if(n<0)
{
printf("负数没有阶乘\n");
exit(0);
}
for(i=1;i<=n;i++)
{
p=p*i;
sum=sum+p;
}
printf("阶乘的和为%d\n",sum);
}
2.素数
#include<stdio.h>
int main()
{
int n,flag=1,i;
scanf("%d",&n);//输入一个数n,判断它是否是素数。
for(i=2;i<n/2;i++)
{
if(n%i==0)// 根据素数的定义n依次除以小于它本身大于1的数
flag=0;//一旦有能被整除的数,表明 n不是素数,使得flag=0 。
}
if(flag==0)//根据flag的值判断n是否是素数
printf("%d不是素数",n);
else
printf("%d是素数",n);
}
3.99乘法表
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d ",i,j,i*j);
}
printf("\n");
}
}
4.水仙花数(三位数)
#include<stdio.h>
int main()
{
int i,m,n,k;
for(i=100;i<1000;i++)
{
m=i/100;
k=i%10;
n=(i-100*m)/10;
if(i==m*m*m+n*n*n+k*k*k)
printf("%d\n",i);
}
}
5.完美数(10000以内)
#include<stdio.h>
int main()
{
int i,j,s;
for(i=1;i<=10000;i++)
{
s=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
s=s+j;
}
}
if(s==i)
printf("%d ",i);
}
}
6.相亲数
#include <stdio.h>
#define N 10000
void main()
{
int i,j,k;
unsigned s[N];
for(i=2;i<N;i++)
{
for(j=1,s[i]=0;j<i;j++)
{
if(i%j==0)
s[i]+=j;
}
}
for(i=2;i<N;i++)
{
j=s[i];
if(j>N)
continue;//
if(i==s[j]&&j>i)
{
printf("%d: ",i);
for(k=1;k<i;k++)
if(i%k==0)
printf("%d ",k);
printf("\n");
printf("%d: ",j);
for(k=1;k<j;k++)
if(j%k==0)
printf("%d ",k);
printf("\n\n");
}
}
}
7.数字反位输出
#include<stdio.h>
int main()
{
int t = 0;
int n;
scanf("%d",&n);
while(n!=0)
{
t = t*10+n%10;
n = n/10;
}
printf("%d\n",t);
}
8.回文数判断
#include<stdio.h>
int main()
{
int n,m=0,k;
do
{
scanf("%d",&n);
if(n<=0)
printf("数据输入错误,请重新输入\n");
}while(n<=0);
k=n;
while(k!=0)
{
m=m*10+k%10;
k=k/10;
}
if(n==m)
printf("%d是回文数\n",n);
else
printf("%d不是回文数\n",n);
}
9.排序(选择排序,冒泡排序,插入排序)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void sort(int a[],int n);
void sort1(int a[],int n);
void sort2(int a[],int n);
int main()
{
int b[]={5,6,9,2,3,4};
int i,n=6;
sort2(b,n);
for(i=0;i<n;i++)
{
printf("%3d",b[i]);
}
return 0;
}
//选择排序
void sort(int a[],int n)
{
int t,i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[k])
{
k=j;
}
}
if(k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}
//冒泡排序
void sort1(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j+1]<a[j])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
//插入排序
void sort2(int a[],int n)
{
int i,j,x;
for(i=1;i<n;i++)
{
j=i-1;
x=a[i];
while(j>=0&&a[j]>x)
{
a[j+1]=a[j];
j--;
}
a[j+1]=x;
}
}