Python123第五章答案(自写,仅供参考) By:肇院伟烨
前言
1、代码自己写的,不是标准答案,仅供参考。
2、建议看懂后自己另外写而不是复制粘贴。
3、点击目录可以转跳
文章目录
第五章
第1题
#include<stdio.h>
int sign(int x,int y)
{
if(x>0)
y=1;
else if(x==0)
y=0;
else
y=-1;
return y;
}
int main()
{
int x,y;
scanf("%d",&x);
printf("sign(%d) = %d",x,sign(x,y));
return 0;
}
第2题
#include <stdio.h>
int sum=0;
int even(int n);
int OddSum(int L[], int N);
int main()
{
int N,L[100],i;
scanf("%d", &N);
for ( i = 1; i<=N; i++)
{
scanf("%d", &L[i]);
}
printf("Sum of ( ");
OddSum(L, N);
printf(") = %d",sum);
return 0;
}
int even(int n)
{
if (n % 2 == 0)
return 1;
else
return 0;
}
int OddSum(int L[], int N)
{
int i;
for (i = 1; i <= N; i++)
{
if (even(L[i]) == 0)
{
printf("%d ", L[i]);
sum += L[i];
}
}
return sum;
}
第3题
#include <stdio.h>
#include <math.h>
double dist(double x1, double y1, double x2, double y2);
int main()
{
double x1,y1,x2,y2;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
printf("dist = %.2lf",dist(x1,y1,x2,y2));
return 0;
}
double dist(double x1, double y1, double x2, double y2)
{
double d;
d=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
return d;
}
第4题
#include <stdio.h>
int sum;
int prime(int p);
int PrimeSum(int m, int n);
int main()
{
int m,n;
scanf("%d%d", &m,&n);
printf("Sum of ( ");
PrimeSum(m, n);
printf(") = %d",sum);
return 0;
}
int prime(int p)
{
int i,result=1;
if (p <= 1)//因为 1 不是素数要排除 1 。
{
return 0;
}
else
{
for (i = 2; i < p; i++)
{
if (p % i == 0)//能被1和它本身之外的数整除就让判断值presult变0 。
{
result = 0;
break;//但凡有一个数可以整除就不是素数,可以停止循环 。
}
}
if (result == 0)
return 0;
else
return 1;
}
}
int PrimeSum(int m, int n)
{
int i;
for ( i = m; i <= n; i++)
{
if (prime(i) == 1)
{
printf("%d ",i);
sum += i;
}
}
return sum;
}
第5题
#include <stdio.h>
#include <math.h>
int CountDigit( int number, int digit );
int main()
{
int number,x;
scanf("%d%d",&number,&x);
printf("Number of digit %d in %d: %d",x,number,CountDigit(number,x));
return 0;
}
int CountDigit( int number, int digit )
{
int sum=0,i=0,w;
number=fabs(number);
if(number==0 && digit==0)
sum=1;
while(number>0)
{
w=number%10;
number/=10;
if(w==digit)
sum++;
}
return sum;
}
第6题
#include <stdio.h>
#include <math.h>
int narcissistic(int number);
void PrintN(int m, int n);
int main()
{
int m, n;
scanf("%d %d", &m, &n);
if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
PrintN(m, n);
if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);
return 0;
}
int narcissistic(int number)
{
int j = 0, a ,b,w,sum=0;
a=b= number;
do
{
a /= 10;
j++;
}while(a > 0);
while (b > 0)
{
w = b % 10;
b = b / 10;
sum+=pow(w, j);
}
if (sum == number)
return 1;
else
return 0;
}
void PrintN(int m, int n)
{
int i;
for (i=m+1;i<=n-1;i++)
{
if (narcissistic(i))
printf("%d\n", i);
}
}
第7题
#include <stdio.h>
#include <math.h>
double js(int n);
double funcos( double e, double x );
int main()
{
double e,x;
scanf("%lf%lf",&e,&x);
printf("cos(%.2lf) = %lf",x,funcos(e,x));
return 0;
}
double funcos( double e, double x )
{
double sum=0,i,item=1,fu=1;
for(i=0;item>=e;i+=2)
{
item=pow(x,i)/js(i);
sum=sum+item*fu;
fu=-fu;
}
return sum;
}
double js(int n)
{
if(n<=0)
return 1;
else
return n*js(n-1);
}
第8题
#include <stdio.h>
#include <math.h>
int sum( int m, int n );
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("sum = %d",sum(m,n));
return 0;
}
int sum( int m, int n )
{
int sum=0,i;
for(i=m;i<=n;i++)
sum+=i;
return sum;
}
第9题
#include<stdio.h>
int max(int a, int b);
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("max = %d",max(a,b));
return 0;
}
int max(int a, int b)
{
int z;
z = a > b ? a:b;
return z;
}
第10题
#include <stdio.h>
int sum;
int prime(int p);
int PrimeSum(int m, int n);
int main()
{
int m,n;
scanf("%d%d", &m,&n);
PrimeSum(m, n);
printf("%d",sum);
return 0;
}
int prime(int p)
{
int i,result=1;
if (p <= 1)//因为 1 不是素数要排除 1 。
{
return 0;
}
else
{
for (i = 2; i < p; i++)
{
if (p % i == 0)//能被1和它本身之外的数整除就让判断值presult变0 。
{
result = 0;
break;//但凡有一个数可以整除就不是素数,可以停止循环 。
}
}
if (result == 0)
return 0;
else
return 1;
}
}
int PrimeSum(int m, int n)
{
int i;
for ( i = m; i <= n; i++)
{
if (prime(i) == 1)
{
sum += i;
}
}
return sum;
}
第11题
#include<stdio.h>
#include<math.h>
int narcissistic(int p)
{
int a,b,n = 0,sum=0,w;
a = b = p;
do
{
a /= 10;
n++;
}
while (a > 0);
while (b>0)
{
w = b % 10;
b /= 10;
sum += pow(w,n );
}
if (sum == p)
return 1;
else
return 0;
}
void PrintN(int m,int n)
{
int i;
for (i=m;i<=n;i++)
if (narcissistic(i))
printf("%d\n",i);
}
int main()
{
int m, n;
scanf("%d%d",&m,&n);
PrintN(m,n);
return 0;
}
第12题
#include<stdio.h>
int main()
{
int n,i,j,a,b,c;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(a=n-i;a>0;a--)
printf(" ");
//左边空格打印
if(i==1)//第一行
{
printf("1");
}
else if(i==n)//最后一行
{
for(j=1;j<=2*n-1;j++)
{
printf("%d",n);
}
}
else//中间所有行
{
printf("%d",i);
for(b=2*(i-1)-1;b>0;b--)
printf(" ");
printf("%d",i);
}
printf("\n");
}
return 0;
}