C语言简单的23 个例子
例1.1:输入两个数,输出其中的最大者
方法一:
#include "stdio.h"
int main()
{
int a,b,max;
scanf("%d %d",&a,&b);
if (a>b) max=a;
else max=b;
printf("%d\n",max);
return 0;
}
方法二:
#include"stdio.h"
int main()
{
int m,n;
scanf("%d %d",&m,&n);
printf("%d\n",(m>n)?m:n);
return 0;
}
例1.2:输入三个数,输出其最大者
#include "stdio.h"
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%d\n",a>b?(a>c?a:c):(b>c?b:c));
return 0;
}
例2:求一个数的绝对值
方法一:
#include "stdio.h"
int main()
{
int a,absa;
printf("enter one number:\n");
scanf("%d",&a);
if (a<0)
absa=-a;
else
absa=a;
printf("|%d|=%d\n",a,absa);
return 0;
}
方法二:
#include"stdio.h"
#include"math.h"
int main()
{
int a;
scanf("%d",&a);
printf("%d\n",abs(a));
return 0;
}
例3:两个数的四则运算
#include "stdio.h"
int main()
{
double x,y;
char op;
printf("输入运算式:\n");
scanf("%lf%c%lf",&x,&op,&y);
switch (op)
{
case '+':printf("%.2f%c%.2f=%.2f\n",x,op,y,x+y);
break;
case '-':printf("%.2f%c%.2f=%.2f\n",x,op,y,x-y);
break;
case '*':printf("%.2f%c%.2f=%.2f\n",x,op,y,x*y);
break;
case '/':
if (y==0)
printf("error!\n");
else
printf("%.2f%c%.2f=%.2f\n",x,op,y,x/y);
break;
default :printf("expression is error!\n");
}
return 0;
}
例4:求N个数的平均数,以-1结束输入,且-1不纳入计算
#include "stdio.h"
int main()
{
int n=0;
double a,sum=0;
while(1)
{
scanf("%lf",&a);
if(a==-1) break;
sum+=a;
n++;
}
printf("%.2f\n",sum/n);
return 0;
}
例5:打印出九九乘法口诀
#include "stdio.h"
int main()
{
int i,j;
for (i=1;i<10;i++)
{ for(j=i;j<10;j++)
{
printf("%dx%d=%-4d",i,j,i*j);
}
printf("\n");
}
return 0;
}
例6:大小写转换,以数字0结束输入
#include "stdio.h"
int main()
{
char ch;
while(1)
{
scanf("%c",&ch);
if(ch=='0') break;
if(ch>='A'&&ch<='Z')
printf("%c\n",ch+32);
if(ch>='a'&&ch<='z')
printf("%c\n",ch-32);
}
return 0;
}
例7:打印菱形图案
#include "stdio.h"
int main()
{
int i,j,k;
for (i=0;i<10;i++)
{
for (j=0;j<=9-i;j++)
printf(" ");
for (k=0;k<=2*i;k++)
printf("%c",3);
printf("\n");
}
for (i=0;i<=9;i++)
{
for (j=0;j<=i+1;j++)
printf(" ");
for (k=0;k<=16-2*i;k++)
printf("%c",3);
printf("\n");
}
return 0;
}
例8:求100以内所有的素数
#include "stdio.h"
#include "math.h"
main()
{
int m,i,k,t=0,j=1,n=0;
printf("%3d:",j);
for (m=2;m<=300;m=m+1)
{
k=(int)sqrt(m);
for (i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%5d",m);
t++;
if(t%4==0) printf("\n%3d:",++j);
}
}
printf("\n");
return 0;
}
例9:输出Fibonacci数列的前20项及其和(Fibonacci数列:1,1,2,3,5,8,13,21···)
#include "stdio.h"
int main()
{
int i,sum=0,f[20]={1,1};
for (i=2;i<20;i=i+1)
f[i]=f[i-1]+f[i-2];
for (i=0;i<20;i=i+1)
{
printf("%6d",f[i]);
sum=sum+f[i];
if ((i+1)%4==0) printf("\n");
}
printf("sum=%d\n",sum);
return 0;
}
例10:输出各位数均不相同的三位数,及其个数
#include "stdio.h"
int main()
{
int n,i,j,k;
n=0;
for (i=1;i<=9;i++)
for (k=1;k<=9;k++)
if (k!=i)
for (j=0;j<=9;j++)
if(j!=i&&j!=k)
{
n++;
printf("%d ",100*i+10*j+k);
if (n%10==0) printf("\n");
}
printf("\n");
printf("共%d个数\n",n);
return 0;
}
例11:输入一个数,求其阶乘
#include "stdio.h"
int main()
{
int i,s,n;
printf("n=");
scanf("%d",&n);
i=1;
s=2;
while (i<=n)
{
s=s*i;
i=i+1;
}
printf("%d!=%d\n",n,s);
return 0;
}
例12:将一个数分解质因数
#include"stdio.h"
int main()
{
int i,n;
printf("please input numbers:\n");
for(;;)
{
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!=1)
{
if(n%i==0)
{ printf("%d*",i);
n=n/i;
}
else break;
}
}
if(n==1) printf("\b \n");
else printf("%d\n",n);
}
return 0;
}
例13:汉诺塔游戏
#include
void move(char a,char b)
{
static int i=0;
printf("%c-->%c %d\n",a,b,++i);
}
void hanoi(int m,char a,char b,char c)
{
if(m==1) move(a,c);
else
{
hanoi(m-1,a,c,b);
move(a,c);
hanoi(m-1,b,a,c);
}
}
int main()
{
int m;
printf("请输入方块数:");
scanf("%d",&m);
hanoi(m,'A','B','C');
return 0;
}
例14:求一句话中单词的个数
#include
int main()
{
char s[100],c;
int i,temp=0,num=0;
gets(s);
for(i=0;(c=s[i])!='\0';i++)
{
if (c==' ') temp=0;
else if (temp==0)
{
num=num+1;
temp=1;
}
}
printf("%d\n",num);
return 0;
}
例15:水仙花数(三位数,各位数字的三次方之和等于该数)
方法一:
#include "stdio.h"
int main()
{
int i,j,z,n;
for (n=100;n<1000;n++)
{
i=n/100;
j=n/10-10*i;
z=n%10;
if(n==i*i*i+j*j*j+z*z*z)
printf("%5d",n);
}
printf("\n");
return 0;
}
方法二:
#include"stdio.h"
int main()
{
int i,j,k;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(i*i*i+j*j*j+k*k*k==100*i+10*j+k)
printf("%4d",100*i+10*j+k);
printf("\n");
return 0;
}
例16:字符串b在字符串a中出现的次数,b中可以用“?”代替未知字母
#include
#define N 1000
int main()
{
int i,j,m,n,k,x=0;
char a[N],b[N];
gets(a);
gets(b);
for(i=0;a[i]!='\0';i++);
for(j=0;b[j]!='\0';j++);
m=i--;
n=j--;
for(i=0;i<=m-n+1;i++)
{
k=0;
for(j=0;j if(b[j]=='?') {k=1;continue;} else if(a[i+j]==b[j]) k=1; else k=0; if (k) x++; } printf("%d\n",x); return 0; } 例17:冒泡排序 #include "stdio.h" #define N 10 int main() { int i,j,t,max,a[N]={1,1,2,3,15,28,133,21,34,777}; int x; printf("初始数组元素为:"); for (i=0;i printf("%d ",a[i]); printf("\n"); for (i=0;i for (j=0;j if (a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("从小到大排序后的数组为:"); for (i=0;i printf("%3d",a[i]); return 0; } 例18:选择排序 #include "stdio.h" #define N 10 int main() { int i,t,j,max,a[N]={1,1,2,3,15,28,133,21,34,777}; int x; printf("初始数组元素为:");