西工大C语言程序作业.docx
《西工大C语言程序作业.docx》由会员分享,可在线阅读,更多相关《西工大C语言程序作业.docx(14页珍藏版)》请在冰豆网上搜索。
西工大C语言程序作业
T031、高低交换
#include
inlineintxchg(unsignedcharn)
{
inthigh,low,result;
high=n&0xF0;
low=n&0x0F;
result=low*16+high/16;
returnresult;
}
intmain()
{
intinput;
scanf("%d",&input);
printf("%d\n",xchg((unsignedchar)input));
return0;
}
T032、亲合数
#include
intmain()
{
longi,j,m,n,s[1000],sum1,sum2;
{
scanf("%d%d",&m,&n);
j=0;sum1=sum2=0;
for(i=1;i<=m/2;i++)
{
if(m%i==0)
s[j++]=i;
}
for(i=0;isum1+=s[i];
j=0;
for(i=1;i<=n/2;i++)
{
if(n%i==0)
s[j++]=i;
}
for(i=0;isum2+=s[i];
if(sum1==n&&sum2==m)
printf("YES\n");
elseprintf("NO\n");
}
return0;
}
T033、逆序整数
#include
intmain()
{
intnum,resver=0;
scanf("%d",&num);
while(num)
{
resver=10*resver+num%10;
num/=10;
}
printf("%d\n",resver);
return0;
}
T034、循环移位
#include
#include
intmove(intvalue,intn)
{
if(n<0)
{
n=-n;
value=(value<>(32-n));
}
else
value=(value>>n|value<<(32-n));
return(value);
}
intmain()
{
intx,y;
scanf("%d%d",&x,&y);
printf("%d\n",move(x,y));
return0;
}
T035、A+B||取两位
#include
#defineN50
intcount(inta,intb)
{
intc=a+b;
returnc%100;
}
intmain()
{
intn,arr[N][2];
scanf("%d",&n);
for(inti=0;iscanf("%d%d",&arr[i][0],&arr[i][1]);
printf("\n");
for(inti=0;iprintf("%d\n",count(arr[i][0],arr[i][1]));
return0;
}
T036、组合数
#include
intZuHe(intn,intm)
{
inti=1;
inttemp1=1,temp2=1;
if(n==m)
{
return1;
}
else
{
for(i=1;i<=m;i++)
{
temp1*=n-i+1;
temp2*=i;
}
temp1/=temp2;
returntemp1;
}
}
intmain()
{
intn,m,num;
scanf("%d%d",&n,&m);
if(n{
printf("wrong");
}
num=ZuHe(n,m);
printf("%d\n",num);
}
T037、发工资的日子
#include
intmain()
{
intN,sum,n;
scanf("%d",&N);
{
sum=0;
while(N--)
{
scanf("%d",&n);
sum+=n/100;
if(n%100==0)continue;
elsen%=100;
sum+=n/50;
if(n%50==0)continue;
elsen%=50;
sum+=n/10;
if(n%10==0)continue;
elsen%=10;
sum+=n/5;
if(n%5==0)continue;
elsen%=5;
sum+=n/2;
if(n%2==0)continue;
elsen%=2;
sum+=n;
}
printf("%d\n",sum);
}
return0;
}T038、最大整数
#include
intgetfloor(doublea)
{
if(a<0&&(int)a!
=a)
return(int)a-1;
return(int)a;
}
intmain()
{
doublea;
scanf("%lf",&a);
printf("%d\n",getfloor(a));
}
T039、获取指定二进制位
#include
intgetbit(shortn,shortk)
{
shorts=1,a;
s=s<<(k-1);
a=n&s;
if(a)
return1;
elsereturn0;
}
intmain()
{
shortn,k,y;
intgetbit(shortn,shortk);
scanf("%hd%hd",&n,&k);
if(1<=k&&k<=16)
{y=getbit(n,k);
printf("%d",y);}
return0;
}
T040、方差
#include
#include
doubles(doublex[],intn);
main()
{
intn,i;
doublex[50],vs;
scanf("%d",&n);
for(i=0;iscanf("%lf",&x[i]);
vs=s(x,n);
printf("%.6f",vs);
return0;
}
doubles(doublex[],intn)
{
inti;
doublesum=0,s=0,ave;
for(i=0;isum+=x[i];
ave=sum/n;
for(i=0;is+=pow(x[i]-ave,2);
returns;
}