c语言代码题目,C语言助教题目代码部分

题8000022012,求一个整数任意次方的最后三位数。

#include

#include

int main()

{

int m,n;

scanf("%d %d",&m,&n);

int i;

int sum = 1;

for(i=0;i

{

if(sum>1000)

sum = sum%1000;

sum = sum * m;

}

printf("%d\n",sum%1000);

return 0;

}

题8000022008 公式求π的近似值

#include

#include

#include

int main()

{

double pi = 0;

double i = 1.0;

do

{

pi+= 1/i;

if(i>0)

i = -(i+2);

else

i = fabs(i) +2;

}while(fabs(1/i)>1e-6);

printf("%.6lf\n",4*pi);

return 0;

}

题8000022007 求实数整数部分位数

#include

#include

#include

int main()

{

double num;

scanf("%lf",&num);

int count = 0;

int number ;

number = (int)(fabs(num));

while(number)

{

count++;

number = number / 10;

}

printf("%d\n",count);

return 0;

}

8000022002二分法求方程的根

#include

#include

#include

int main()

{

double x0,x1=0,x2=0,fx0,fx1,fx2;//x1,x2未端点,x0为中点,浮点型数据

//判断区间是否有解

printf("请输入端点x1,x2:\n");

scanf("%lf %lf",&x1,&x2);

printf("x1:%lf\n",x1);

printf("x2:%lf\n",x2);

fx1=2*x1*x1*x1-4*x1*x1+3*x1-6;

fx2=2*x2*x2*x2-4*x2*x2+3*x2-6;

if(fx1*fx2>0)

{

printf("have no anwser\n");

exit(0);

}

//二分法求解

do

{

x0=(x1+x2)/2;

fx0=2*x0*x0*x0-4*x0*x0+3*x0-6;

if (fx0*fx1<0)//在该区间

{

x2=x0;//调整端点位置

fx2=fx0;

}

else

{

x1=x0;

fx1=fx0;

}

} while (fabs(fx0)>1e-6);// 这里精度太小可能跟文档答案有偏差

printf("方程的根%.2lf",x0);

return 0;

}

题8000022001 迭代法求平方根的值

#include

#include

#include

int main()

{

double num;

scanf("%lf",&num);

double x1,x2=1.0;

do

{

x1 = x2;

x2 = 0.5*(x1 + num/x1);

}while(fabs(x1-x2)>1e-5);

printf("%lf\n",x1);

return 0;

}

题8000022000完数问题

#include

#include

#include

int isCompleteNum(int num)

{

int i;

int ans = num;

for(i=1;i<= num/2;i++)

{

if(num%i==0)

ans-= i;

}

if(ans == 0)

return 1;

else

return 0;

}

void PrintFactor(int num)

{

printf("%d=",num);

int i,j=0;

int factor[20];

for(i=1;i<=num/2;i++)

{

if(num%i==0)

factor[j++]=i;

}

for(i=0;i

{

printf("%d+",factor[i]);

}

printf("%d\n",factor[j-1]);

}

int main()

{

int i;

for(i=1;i<=1000;i++)

{

if(isCompleteNum(i))

PrintFactor(i);

}

return 0;

}

题8000010008百分制成绩转换

#include

#include

int main()

{

int grade;

scanf("%d",&grade);

printf("%c\n",grade);

switch(grade/10)

{

case 10:

case 9: printf("A\n");break;

case 8:printf("B\n");break;

case 7:printf("C\n");break;

case 6:printf("D\n");break;

default:printf("E\n");

}

return 0;

}

题8000010007 输入日期,判断是这一年的第几天

#include

#include

int isLeapYear(int year)

{

if((year%4==0&&year%100!=0) ||(year%400==0))

{

return 1;

}

else

{

return 0;

}

}

int main()

{

int year,month,day;

scanf("%d-%d-%d",&year,&month,&day);

int dayOfMonth[] = {31,28,31,30,31,30,31,31,30,31,30,31};

int totalDays = 0,index;

for(index=0;index

{

totalDays+= dayOfMonth[index];

}

totalDays+= day;

//注意需要判断是否是大于2月,然后再是判断闰年问题

if(isLeapYear(year) && (month>2))

{

totalDays++;

}

printf("%d-%d-%d\n",year,month,day);

printf("total days = %d",totalDays);

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值