C语言助教题目代码部分

来源:互联网 发布:练字软件手机软件 编辑:程序博客网 时间:2024/05/17 03:37

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

#include <stdio.h>#include <stdlib.h>int main(){    int m,n;    scanf("%d %d",&m,&n);    int i;    int sum = 1;    for(i=0;i<n;i++){if(sum>1000)sum = sum%1000;sum = sum * m;}printf("%d\n",sum%1000);    return 0;}

题8000022008 公式求π的近似值

#include <stdio.h>#include <stdlib.h>#include<math.h>int main(){    double pi = 0;    double i = 1.0;    do{pi+= 1/i;if(i>0)i = -(i+2);elsei = fabs(i) +2;}while(fabs(1/i)>1e-6);printf("%.6lf\n",4*pi);    return 0;}

题8000022007 求实数整数部分位数

#include <stdio.h>#include <stdlib.h>#include<math.h>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 <stdio.h>#include<stdlib.h>#include <math.h>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 <stdio.h>#include <stdlib.h>#include<math.h>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 <stdio.h>#include <stdlib.h>#include<math.h>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;elsereturn 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<j-1;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 <stdio.h>#include <stdlib.h>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 <stdio.h>#include <stdlib.h>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<month-1;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
原创粉丝点击