C语言精华代码.docx
《C语言精华代码.docx》由会员分享,可在线阅读,更多相关《C语言精华代码.docx(48页珍藏版)》请在冰豆网上搜索。
C语言精华代码
C语言精华1(自己以前学了,觉得还可以留下的代码...跟新中)
1.
/*接受一位整数。
编写一个程序,将该数的每一个数字相加并显示结果*/
#include
voidmain()
{
inta,b,c,sum;
printf("\n请输入一个数:
");
scanf("%d",&a);
c=0;
sum=0;
while(a>0)
{
b=a%10;
a=a/10;
c++;
sum=b+sum;
}
printf("这些数拆开相加的结果");
printf("%d\n",sum);
}
-------------------------------------------------------
2.
/*接受用户输入的数值,该值表示某个字符的ASCⅡ码,使用putchar()函数显示该字符*/
#include
voidmain()
{
inta;
charb;
printf("请输入一个字母");
scanf("%d",&a);
b=(char)a;
printf("转换之后结果");
putchar(b);
printf("\n");
}
---------------------------------------------------------
3.
/*编写一个C程序,用于打印九九乘法表*/
#include
voidmain()
{
inti,j,sum;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
sum=i*j;
printf("%d*%d=%d\t",j,i,sum);
}
printf("\n");
}
}
---------------------------------------------------------------
4.
/*输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
*/
#include
voidmain()
{
inta,b,c,d;
chari;
a=0;
b=0;
c=0;
d=0;
printf("\n请输入字符序列:
");
while((i=getchar())!
='\n')
{
if((i>='a'&&i<='z')||(i>='A'&&i<='Z'))
a++;
elseif(i>='0'&&i<='9')
b++;
elseif(i=='')
c++;
else
d++;
}
printf("\n输入中英文字母个数:
%d",a);
printf("\n输入数字的个数:
%d",b);
printf("\n输入空格的个数:
%d",c);
printf("\n输入其他的个数:
%d\n",d);
}
---------------------------------------------------------------
5.
/*将一个正整数分解因数。
例如:
输入90,打印出90=2*3*3*5*/
#include
voidmain()
{
inta,b;
printf("\n请输入一个数:
\n");
scanf("%d",&a);
printf("%d=",a);
for(b=2;b<=a;b++)
{
while(a!
=b)
{
if(a%b==0)
{
printf("%d*",b);
a=a/b;
}
else
b=b+1;
}
printf("%d\n",a);
}
}
----------------------------------------------------------
6.
/*编写一个程序,根据输入某班级学员的成绩,计算该班级学员的平均成绩。
班级的人数要求用户输入。
根据输入的人数,分别录入学员的成绩。
计算该班级学员的平均成绩,并显示计算结果。
最后询问用户是否继续,
直到用户自己确定要结束程序退出.*/
#include
voidmain()
{
inta,n,i,sum,score; //a是班级号,n是学员总数,score是成绩,sum是总成绩,i几号的成绩
chare;
do
{
printf("请输入班级号:
");
scanf("%d",&a);
printf("请输入该班级的学员号总数:
");
scanf("%d",&n);
i=1;sum=0;
while(i<=n)
{
printf("请输入学号%d的成绩:
",i);
scanf("%d",&score);
sum=sum+score;
i++;
}
printf("该班级学员的平均成绩为:
%f",(float)sum/n);
printf("是否输入另一个班级的成绩?
\n");
fflush(stdin);
e=getchar();
}while(e=='y'||e=='Y');
}
----------------------------------------------------
7.
/*编写一个程序,最多接受10个数,并求出其中所有正数的和。
用户可以通过输入999终止程序,统计用户输入的正
数的个数,并且显示这些数的和*/
#include
voidmain()
{
inta,b,c;
b=0;
printf("\n请输入10个数,或者输入999中止输入.\n");
for(c=0;c<10;c++)
{
scanf("%d",&a);
if(a==999)
{
break;
}
elseif(a<=0)
{
continue;
}
else
b=b+a;
}
printf("这%d个数的和是:
%d\n",c,b);
}
--------------------------------------------------------
8.
/*编写一个程序,用于生成如图所示的输出结果,
要求根据用户输入的一个整数,输出一个数字组成
的图案。
请输入一个数:
5
55555
4444
333
22
1
1
22
333
4444
55555
Pressanykeytocontinue
*/
#include
voidmain()
{
inta,i,j;
printf("请输入一个数:
");
scanf("%d",&a);
for(i=a;i>=1;i--)
{
for(j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
printf("\n");
for(i=1;i<=a;i++)
{
for(j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
}
----------------------------------------------------------
9.
/*编写一个程序,打印如下图案:
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGGGG
*/
#include
voidmain()
{
inti,j,k;
charch='A';
for(i=1;i<=7;i++)
{
for(j=1;j<=7-i;j++)
printf("");
for(k=1;k<=2*i-1;k++)
printf("%c",ch);
ch=ch+1;
printf("\n");
}
}
------------------------------------------
10.
/*求一个3*3矩形阵对角线元素之和*/
#include
voidmain()
{
floata[3][3],sum=0;
inti,j;
printf("请输入一组数:
\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("角线元素之和为:
\n%6.2f",sum);
}
11.
/*编写一个录入函数:
用来从键盘接受n个整型数并存放在一个整型数组中,
在主函数中调用该函数计算出这n个整数之和*/
#include
voidfun(inta[],intn);
voidmain()
{
intn,i,b[100],sum=0;
printf("输入n:
");
scanf("%d",&n);
fun(b,n);
for(i=0;isum+=b[i];
printf("sum=%d\n",sum);
}
voidfun(inta[],intn)
{
inti;
printf("输入%d个数:
",n);
for(i=0;iscanf("%d",&a[i]);
}
-------------------------------------------------------
12.
/*.目前人民币共有以下几种面值(不包括角和):
1元2元5元10元20元50元100元
编写一个函数计算金额"X"需要多少张面值为n元的纸币。
在主函数中输入一个金额值,调用该函数。
计算组成该金额最少需要多少张纸币*/
#include
intdenom(int*s,intc)
{
return(*s)/c; //被调用的函数
}
voidmain()
{
intsum,temp,notes;
notes=0;
printf("\n请输入金额:
");
scanf("%d",&sum);
temp=sum;
notes=denom(&sum,100);
sum=sum%100; //大于100的除以100比较多出来多少
notes=notes+denom(&sum,50);
sum=sum%50; //大于50的除以50比较多出来多少
notes=notes+denom(&sum,20);
sum=sum%20; //大于20的除以20比较多出来多少
notes=notes+denom(&sum,10);
sum=sum%10; //大于10的除以10多出来多少
notes=notes+denom(&sum,5);
sum=sum%5; //大于5的除以5多出来多少
notes=notes+denom(&sum,2);
sum=sum%2; //大于2的除以2多出来多少
notes=notes+sum;
printf("\n合计%d元将需要%d张纸币。
",temp,notes);
printf("\n");
}
-----------------------------------------------------------------------------------------------------
13.
/*编写一个程序,用于产生20个0~10之间的随机数,将这20个随机数存入数组,
并通过函数统计这些随机数中某个数出现的次数*/
#include
#include
#include //保证输出的随机数字都不一样 不能省略
intcount(intnum[20],intnumber);
voidmain()
{
intarr[20];
intnum,total;
inti;
printf("产生20个0~10之间的随机数序列:
\n");
srand((unsigned)time(NULL)); //与前面相匹配不能省略
for(i=0;i<20;i++)
{
arr[i]=rand()%10;
printf("%d",arr[i]);
}
printf("\n\n请输入要搜索的数:
");
scanf("%d",&num);
total=count(arr,num);
printf("\n随机数序列中%d出现了%d次\n",num,total);
}
intcount(intnum[20],intnumber)
{
inti,n=0;
for(i=0;i<20;i++)
{
if(num[i]==number)
n++;
}
returnn;
}
-------------------------------------------------------------------------------------------
14.
/*编写一个程序,用于求m的n次幂。
m和n由用户输入,
调用自定义的求m的n次幂的函数,并输出计算结果*/
#include
intpower(intm,intn);
intm,n,a=1;
voidmain()
{
printf("输入m的n次幂\n");
scanf("%d%d",&m,&n);
a=power(m,n);
printf("%d\n",a);
}
intpower(intm,intn)
{
inti;
for(i=0;ia=a*m;
returna;
}
--------------------------------------------------------------
15.
/*编写一个程序,使用函数统计一串字符中的小写字母的个数,
该函数参数为一个字符数组,返回值为小写字母的个数,
在主函数中从键盘接受一串字符,并调用统计函数求出小写
字母的个数,然后输出。
*/
#include
intcount(chars[],intn)
{
inti,count=0;
for(i=0;i{
if((s[i]>='a')&&(s[i]<='z'))
count++;
}
returncount;
}
voidmain()
{
intn,c;
chars[100],ch;
n=0;
printf("请输入一行字符:
");
while((ch=getchar())!
='\n') //以回车作为结束的标志
{
s[n]=ch;
n++;
}
fflush(stdin);
printf("输入字符的个数为:
%d个\n",n);
c=count(s,n);
printf("小写字母的个数为:
%d个\n",c);
}
------------------------------------------------------------------
16.
/*编写一个程序,从键盘输入X,Y,Z3个数,
编写函数计算3个数的立方和并返回计算结果*/
#include
#include
voidmain()
{
intx,y,z;
doublesum;
scanf("%d%d%d",&x,&y,&z);
sum=pow(x,3)+pow(y,3)+pow(z,3);
printf("%lf",sum);
}
-------------------------------------------------------------------------
//第二种解法
#include
intabc(int,int,int);
voidmain()
{
intx,y,z,s;
printf("请输入三个数:
");
scanf("%d%d%d",&x,&y,&z);
s=abc(x,y,z);
printf("立方和为:
%d\n",s);
}
intabc(inta,intb,intc)
{
intsum;
sum=a*a*a+b*b*b+c*c*c;
returnsum;
}
-----------------------------------------------------------------------
17.
/*编写一个函数,用于接受3到10之间的一个数,
然后输出由星号组成的矩形
例如为4
****
**
**
****
*/
#include
voidtemp();
voidmain()
{
sb();
}
voidtemp()
{
inti,j,k,num;
printf("请输入3-10之间的数:
");
scanf("%d",&num);
for(i=0;i printf("*");
printf("\n");
for(j=0;j{
printf("*");
for(k=0;kprintf("");
printf("*");
printf("\n");
}
for(i=0;iprintf("*");
printf("\n");
}
-------------------------------------------------------------
18.
/*编写三个函数分别完成一个十进制整数到二进制的转换,
十进制整数到八进制的转换,
十进制整数到十六进制的转换。
在main函数中,
根据用户的选择调用相应的函数完成进制转换。
用户可以重复选择功能,直到输入0退出*/
#include
voida();
voidb();
voidc();
voidmain()
{
intn;
do
{
printf("\n0.退出1.十进制~二进制2.十进制~八进制3.十进制~十六进制\n");
printf("请选择功能:
");
scanf("%d",&n);
if(n==0)
break;
switch(n)
{
case1:
a();
break;
case2:
b();
break;
case3:
c();
break;
default:
printf("输入有误,请在1-4之间选择\n");
}
}while
(1);
}
voida()
{
intnum,p[100],i=0,count;
printf("请输入一个十进制数:
");
scanf("%d",&num);
for(count=0;;count++)
{
if(num==0)
break;
p[count]=num%2;
num=num/2;
i++;
}
printf("转换为二进制:
");
for(count=i-1;count>=0;count--)
printf("%d",p[count]);
printf("\n");
}
voidb()
{
intnum,p[100],i=0,count;
printf("请输入一个十进制数:
");
scanf("%d",&num);
for(count=0;;count++)
{
if(num==0)
break;
p[count]=num%8;
num=num/8;
i++;
}
printf("转换为八进制:
");
for(count=i-1;count>=0;count--)
printf("%d",p[count]);
printf("\n");
}
voidc()
{
intnum,p[100],i=0,count;
printf("请输入一个十进制数:
");
scanf("%d",&num);
for(count=0;;count++)
{
if(num==0)
break;
p[count]=num%16;
num=num/16;
i++;
switch(p[count])
{
case10:
p[count]='A';
break;
case11:
p[count]='B';
break;
case12:
p[count]='C';
break;
case13:
p[count]='D';
break;
case14:
p[count]='E';
break;
case15:
p[count]='F';
break;
}
}
printf("转换为十六进制:
");
for(count=i-1;count>=0;count--)
{
if(p[count]<10)
printf("%d",p[count]);
if(p[count]>=10)
printf("%c",p[count]);
}
printf("\n");
}
------------------------------------------------------------