C语言简单的23 个例子.docx
《C语言简单的23 个例子.docx》由会员分享,可在线阅读,更多相关《C语言简单的23 个例子.docx(21页珍藏版)》请在冰豆网上搜索。
C语言简单的23个例子
例1.1:
输入两个数,输出其中的最大者
方法一:
#includestdio.h
intmain()
{
inta,b,max;
scanf(%d%d,&a,&b);
if(a>b)max=a;
elsemax=b;
printf(%d\n,max);
return0;
}
方法二:
#includestdio.h
intmain()
{
intm,n;
scanf(%d%d,&m,&n);
printf(%d\n,(m>n)?
m:
n);
return0;
}
例1.2:
输入三个数,输出其最大者
#includestdio.h
intmain()
{
inta,b,c;
scanf(%d%d%d,&a,&b,&c);
printf(%d\n,a>b?
(a>c?
a:
c):
(b>c?
b:
c));
return0;
}
例2:
求一个数的绝对值
方法一:
#includestdio.h
intmain()
{
inta,absa;
printf(enteronenumber:
\n);
scanf(%d,&a);
if(a<0)
absa=-a;
else
absa=a;
printf(|%d|=%d\n,a,absa);
return0;
}
方法二:
#includestdio.h
#includemath.h
intmain()
{
inta;
scanf(%d,&a);
printf(%d\n,abs(a));
return0;
}
例3:
两个数的四则运算
#includestdio.h
intmain()
{
doublex,y;
charop;
牰湩晴尨输入运算式:
\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(expressioniserror!
\n);
}
return0;
}
不纳入计算-1结束输入,且-1个数的平均数,以N:
求4例
#includestdio.h
intmain()
{
intn=0;
doublea,sum=0;
while
(1)
{
scanf(%lf,&a);
if(a==-1)break;
sum+=a;
n++;
}
printf(%.2f\n,sum/n);
return0;
}
例5:
打印出九九乘法口诀
#includestdio.h
intmain()
{
inti,j;
for(i=1;i<10;i++)
{for(j=i;j<10;j++)
{
printf(%dx%d=%-4d,i,j,i*j);
}
printf(\
);
}
return0;
}
例6:
大小写转换,以数字0结束输入
#includestdio.h
intmain()
{
charch;
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);
}
return0;
}
例7:
打印菱形图案
#includestdio.h
intmain()
{
inti,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(\
);
}
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(\
);
}
return0;
}
例8:
求100以内所有的素数
#includestdio.h
#includemath.h
main()
{
intm,i,k,t=0,j=1,n=0;
printf(=:
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(],m);
t++;
if(t%4==0)printf(\
=:
++j);
}
}
printf(\
);
return0;
}
例9:
输出Fibonacci数列的前20项及其和
(Fibonacci数列:
1,1,2,3,5,8,13,21···)
#includestdio.h
intmain()
{
inti,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(m,f[i]);
sum=sum+f[i];
if((i+1)%4==0)printf(\
);
}
printf(sum=%d\n,sum);
return0;
}
例10:
输出各位数均不相同的三位数,及其个数
#includestdio.h
intmain()
{
intn,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_x0010_==0)printf(\
);
}
printf(\
);
牰湩晴尨共%d个数\n,n);
return0;
}
例11:
输入一个数,求其阶乘
#includestdio.h
intmain()
{
inti,s,n;
printf(
=);
scanf(%d,&n);
i=1;
s=2;
while(i<=n)
{
s=s*i;
i=i+1;
}
printf(%d!
=%d\n,n,s);
return0;
}
例12:
将一个数分解质因数#includestdio.h
intmain()
{
inti,n;
printf(pleaseinputnumbers:
\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;
}
elsebreak;
}
}
if(n==1)printf(\\n);
elseprintf(%d\n,n);
}
return0;
}
例13:
汉诺塔游戏
#include
voidmove(chara,charb)
{
staticinti=0;
printf(%c-->%c%d\n,a,b,++i);
}
voidhanoi(intm,chara,charb,charc)
{
if(m==1)move(a,c);
else
{
hanoi(m-1,a,c,b);
move(a,c);
hanoi(m-1,b,a,c);
}
}
intmain()
{
intm;
牰湩晴尨请输入方块数:
);
scanf(%d,&m);
hanoi(m,'A','B','C');
return0;
}
14例:
求一句话中单词的个数#include
intmain()
{
chars[100],c;
inti,temp=0,num=0;
gets(s);
for(i=0;(c=s[i])!
='\0';i++)
{
if(c=='')temp=0;
elseif(temp==0)
{
num=num+1;
temp=1;
}
}
printf(%d\n,num);
return0;
}
例15:
水仙花数(三位数,各位数字的三次方之和等于该数)
方法一:
#includestdio.h
intmain()
{
inti,j,z,n;
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10-10*i;
z=n_x0010_;
if(n==i*i*i+j*j*j+z*z*z)
printf(],n);
}
printf(\
);
return0;
}
方法二:
#includestdio.h
intmain()
{
inti,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(M,100*i+10*j+k);
printf(\
);
return0;
}
例16:
字符串b在字符串a中出现的次数,b中可以用“?
”代替未知字母
#include
#defineN1000
intmain()
{
inti,j,m,n,k,x=0;
chara[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;jif(b[j]=='?
'){k=1;continue;}
elseif(a[i+j]==b[j])k=1;
elsek=0;
if(k)x++;
}
printf(%d\n,x);
return0;
}
例:
冒泡排序17#includestdio.h
#defineN10
intmain()
{
inti,j,t,max,a[N]={1,1,2,3,15,28,133,21,34,777};
intx;
牰湩晴尨初始数组元素为:
);
for(i=0;iprintf(%d,a[i]);
printf(\
);
for(i=0;ifor(j=0;jif(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
牰湩晴尨从小到大排序后的数组为:
);
for(i=0;iprintf(=,a[i]);
return0;
}
:
选择排序18例
#includestdio.h
#defineN10
intmain()
{
inti,t,j,max,a[N]={1,1,2,3,15,28,133,21,34,777};
intx;
牰湩晴尨初始数组元素为:
);
for(i=0;iprintf(%d,a[i]);
printf(\
);
for(i=0;i{
t=i;
for(j=i+1;iif(a[j]if(t!
=i){x=a[t];a[t]=a[i];a[i]=x;}
}
牰湩晴尨从小到大排序的数组为:
);
for(i=0;iprintf(%d,a[i]);
printf(\
);
return0;
}
:
数组元素的插入19例#includestdio.h
#defineN10
intmain()
{
inti,j,a[N]={1,1,2,3,15,28,133,21,34};
intx;
牰湩晴尨初始数组元素为:
);
for(i=0;iprintf(%d,a[i]);
printf(\
);
牰湩晴尨请输入要插入的下标位置(0-%d):
N-1);
scanf(%d,&i);
牰湩晴尨请输入要插入的数:
);
scanf(%d\n,x);
for(j=N-1;j>i;j--)
a[j]=a[j-1];
a[i]=x;
牰湩晴尨插入元素之后的数组为:
);
for(i=0;iprintf(M,a[i]);
printf(\
);
return0;
}
例20:
数组元素的删除
#includestdio.h
#defineN10
intmain()
{
inti,j,a[N]={1,1,2,3,15,28,133,21,34,88};
intx;
牰湩晴尨初始数组元素为:
);
for(i=0;iprintf(%d,a[i]);
printf(\
);
牰湩晴尨请输入要删除的下标位置(0-%d),N-1);
scanf(%d,&i);
for(j=i+1;ja[j-1]=a[j];
牰湩晴尨删除后的数组为:
);
for(i=0;iprintf(M,a[i]);
printf(\
);
return0;
}
:
数组中的最大值例21#includestdio.h
#defineN10
intmain()
{
inti,max,a[N]={1,1,2,3,15,28,133,21,34,777};
intx;
牰湩晴尨初始数组元素为:
);
for(i=0;iprintf(%d,a[i]);
printf(\
);
max=a[0];
for(i=1;iif(a[i]>=max)max=a[i];
牰湩晴尨数组的最大值是%d\n,max);
return0;
}
例22:
数组中最大值的下标
#includestdio.h
#defineN10
intmain()
{
inti,max,a[N]={1,1,2,3,15,28,133,21,34,777};
intx;
牰湩晴尨初始数组元素为:
);
for(i=0;iprintf(%d,a[i]);
printf(\
);
max=0;
for(i=1;iif(a[i]>=a[max])max=i;
牰湩晴尨数组的最大值的下标是%d\n,max);
return0;
}
:
查找数组中特定的元素例23#includestdio.h
#defineN10
intmain()
{
inti,j,t,a[N]={1,1,2,3,15,28,133,21,34,88};
intx;
牰湩晴尨初始数组元素为:
);
for(i=0;iprintf(%d,a[i]);
printf(\
);
牰湩晴尨请输入要查找的元素:
);
scanf(%d,&x);
t=-1;
for(i=0;iif(a[i]==x)t=i;
晩?
?
?
?
瀠楲瑮?
数组中没有该数!
\n);
汥敳瀠楲瑮?
该数位于数组的第%d个下标\n,t);
return0;
}