}
printf("%disthebiggestnumber!
\n",s);
return0;
}
P0360.3按大小顺序输出一些数.
#include
intmain()
{
inti,j,a[4],s=0;
printf("Pleaseinput5numbers:
\n");//此处要回车.
for(i=0;i<=4;i++)
{
scanf("%d",&a[i]);//这是取多个数的代码,可以用while控制取到\n符为止.
}
for(i=0;i<=3;i++)//双重循环,先一个外循,再轮所有小循,轮完后再下一个大循.
{
for(j=i+1;j<=4;j++)//第一个循环是至n-1,第二个循环是到n.
{
if(a[i]>a[j])//如果成立,则对换,小于号表示降序排列,大于号表示升序排列.
{
s=a[i];
a[i]=a[j];
a[j]=s;
}
}
}
for(i=0;i<=4;i++)//重新定义循环输出数组中新排列的数.
printf("%d-",a[i]);
return0;
}
P0360.4求1至100的总合.
#include
intmain()
{
inti,sum=0;//这是一个简单的程序.
for(i=0;i<101;i++)
sum=sum+i;
printf("Thesumofonetoonehundredis%d!
\n",sum);
return0;
}
P0360.5判断一个数能否同时被3和5整除.
#include
intmain()
{
intn;
printf("Pleaseinputanumber:
\n");
scanf("%d",&n);
if(n%3==0&&n%5==0)//关键句,用"并"的符号.
printf("Canbedevideby3and5!
\n");
else
printf("Cannotbedevideby3and5!
\n");
return0;
}
P0360.6输出100-200间的素数.
//********************第一种方法.
#include//网络版本,采用调用函数和求根取素.
#include//下面用到sqrt,所以需要包含数据函数.sqrt是求根,属数学函数.
intmain()//学会一个程序采用”主函数+被调用函数”的方式,会比较规范.
{
inti;
for(i=100;i<=200;i++)//为了书写规范,最好加上{},以示清范围.
if(prime_number(i)==1)//i是实参.
printf("%d",i);
return0;
}
intprime_number(doublem)//m是形参.
{
intj,k;
k=(int)sqrt(m);//求根,(int)是强制转换,求根里要是浮点型.
for(j=2;j<=k;j++)
{
if(m%j==0)
return0;//此值返回给主函数中的实参.
}
return1;
}
//********************第二种方法.
#include
#include
intmain()
{
inti;
for(i=100;i<=200;i++)//指定至间.
{
if(prime(i)==1)//这里i为实参,传入形参j中进行运算,然后再由形参j带出返回.
printf("%distheprimenumber!
\n",i);
}
return0;
}
intprime(intj)//j是形参,用于接收实参i给的值.
{
intm,n;
m=(int)sqrt(j);
for(n=2;n<=m;n++)
{
if(j%n==0)
return0;//返回值,0为不是素数,1是素数.
}
return1;
}
//********************第二种方法.
请仿照2.5来写.
P0360.7最大公约数和最小公倍数.
#include//最大公约数用累除法,除到无余数时的被除数是最大公约数.
main()
{
intm,n,c,d;
intgcd();//这是最大公约数的缩写,此处调用函数,可以不写里面的实参.
intlcm();//这是最小公倍数的缩写,此处调用函数,可以不写里面的实参.
printf("Pleaseinputtwonumber:
\n");
scanf("%d%d",&m,&n);
c=gcd(m,n);//c获取最大公约数
d=lcm(m,n);//d获取最小公倍数
printf("TheGCDof%dand%dis:
%d!
\n",m,n,c);
printf("TheLCMof%dand%dis:
%d!
\n",m,n,d);
return0;
}
intgcd(intx,inty)//最大公约数GreatestCommonDivisor
{
inttemp;
while(x%y!
=0)
{
temp=y;//y在下一轮中作为除数,即是下一轮中的X,所以先闪一边去.
y=x%y;//x,y的余数作为下一轮中的Y,由x%y来取得.
x=temp;//刚才temp中存储了y的值,现在拿出来作为下一轮中的X使用.
}
returny;//这是每一轮中的被除数,按原理来,这就是最大公约数,即累除法的原理.
}
intlcm(intx,inty)//最小公倍数LowestCommonMultiple
{
inti,temp;
if(x{//以下为经典三行码,实现两个数的互换.
temp=x;
x=y;
y=temp;
}
for(i=1;i<=y;i++)//设定一个区间,从1至小的数之间的循环.
{
if(!
((x*i)%y))//除得尽为零,非零为真,则成立并返回.
{//如此往复,直到取模无余数,那么小的数X乘以区间当前的I值,就是最小公倍数.returnx*i;
}
}
}
最简单的C程序设计——顺序程序设计
P0373.1把华氏温度转化为摄氏表示法.
#include
floatF_to_C(floatinput_fah)//代表华转摄,input_fah是局部变量.
{
floatoutput_cen;//这里也是局部变量.
output_cen=(5.0/9)*(input_fah-32);//函数的功能体.
returnoutput_cen;//返回值,注意,返回值的数据类型应该和函数一致.
}
floatC_to_F(floatinput_cen)
{
floatoutput_fah;
output_fah=(9.0/5)*input_cen+32;//转换过程.
returnoutput_fah;
}
intmain()
{
intchoice;
floatinput_fah,input_cen,output_fah,output_cen;//局部变量的调用及参数传递.
printf("F_to_Cpress<1>andC_to_Fpress<2>!
\n");
scanf("%d",&choice);
if(choice==1)
{
printf("Pleaseinputfahrenheit:
");
scanf("%f",&input_fah);//这个是主函数定义的变量,虽然和调用函数同名.
output_cen=F_to_C(input_fah);
printf("The华氏is%d,摄氏is%d.",(int)input_fah,(int)output_cen);
}
if(choice==2)
{
printf("Pleaseinputcentigrade:
");
scanf("%f",&input_cen);
output_fah=C_to_F(input_cen);
printf("TheCentigradeis%d,andtheFahrenheitis%d.",(int)input_cen,(int)output_fah);
}
return0;
}
P0383.2计算存款利息(关于精度问题).
#include
intmain()
{
floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;
p1=p0*(1+r1);
p2=p0*(1+r2);
p3=p0*(1+r3/2)*(1+r3/2);
printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);
return0;
}
P0553.3大写转换成小写
#include
intmain()//小写范围是97-122,大写范围是65-90,大写加上即得小写.26个字母.
{
charc1,c2;
c1='A';
c2=c1+32;
printf("%c%d",c2,c2);
return0;
}
P0593.4给出三角形边长,算出面积.
#include
#include
intmain()
{
doublea=3.67,b=5.43,c=6.21,s,area;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("areais%f\n",area);//默认可以组成三角形.
return0;
}
P0653.5求一无二次等式的根,默认两个不同根.
#include
#include
intmain()
{
doublea,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf("x1=%7.2f\nx2=%7.2f",x1,x2);
return0;
}
P0713.6用%f输出实数,只能得到六位小数.
#include
#include
intmain()
{
doublea=1.0;//1是整型,1.0是浮点型,默认是double.可以是float.
printf("%.9f\n",a/3);
return0;
}
P0723.7float型数据的有效位数.
#include
#include
intmain()
{
floata;//输出的结果是.333252,float精度6位,所以第七位后不可信.
a=10000/3.0;
printf("%f\n",a);
return0;
}
P0783.8使用putchar函数输出.
#include
#include
intmain()
{
chara='B',b='O',c='Y';
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
putchar(101);//101是A的ASCII代码的缩写,因为此函数只能输出字符.
putchar(66);
return0;
}
P0793.9使用getchar得到字符.
#include
#include
intmain()
{
chara,b,c;
a=getchar();
b=getchar();
c=getchar();
putchar(a);
putchar(b);
putchar(c);//这也是基本回显的C程序代码.
putchar('\n');
return0;
}
P0813.10getchar得到大写,putchar输出小写.
#include
#include
intmain()
{
chara,b;
a=getchar();
b=a+32;
putchar(b);
putchar('\n');
return0;
}
P0820.1国民生产总值10年后的增长倍数.
#include
#include
intmain()
{
doublep,r=0.09,n=10;
p=pow((1+r),n);//这是数学函数,pow(x,y)计算x的y次方.
printf("Pis