第七次作业

1.菜单:

#include<stdio.h>
#include<math.h>
int sign(int x);
int even(int n);
int prime(int m);
int countdigit(int number,int digit);
int is(int number);
int main()
{
    int choice=0;
    int n;
    int x,y,sum=0;
    int digit,in,c;
    do{
        printf("**************实验六:函数**************
");
        printf("****1.计算并输出分段函数f(x)的值*******
");
        printf("****2.使用函数求奇数和*****************
");
        printf("****3.计算素数个数并求和***************
");
        printf("****4.统计指定数字的个数***************
");
        printf("****5.输出m~n之间的所有水仙花数********
");
        printf("****请输入一个题号:");
        scanf("%d",&choice);
        switch(choice)
        {
            case 1:printf("请输入x的值:");
                   scanf("%d",&x);
                   y=sign(x);
                   printf("f(x)=%d
",y);
                break;
                
            case 2:printf("输入一批正整数:");
            do{
                scanf("%d",&n);
                if(n>0){
                y=even(n);
                if(y==0){
                sum=sum+n;
                    }
                }
            }while(n>0);
            printf("sum=%d
",sum);
                   break;
                   
            case 3:int c,i,m,n,sum;
                   scanf("%d%d",&m,&n);
                   c=sum=0;
                   for(i=m;i<=n;i++)
                   if(prime(i)!=0)
             {
                c++;
                sum=sum+i;
             }
            printf("c=%d,sum=%d
",c,sum);
                break;
            case 4: scanf("%d%d",&in,&digit);
                    c=countdigit(in,digit);
            printf("number %d of digit %d:%d
",in,digit,c);
                break;
            case 5:scanf("%d%d",&m,&n);
                   printf("result:
");
                   for(i=m;i<=n;i++)
                   if(is(i)!=0)
            printf("%d
",i);
                break;
        }
    }while(choice!=0);
    return 0;            
}

int sign(int x)
{
    int y;
    if(x>0){
        y=1;
    }
    else if(x==0){
        y=0;
    }
    else{
        y=-1;        
    }
    return y;
}

int even(int n)
{
    int x;
    if(n%2==0)
        x=1;
    else
        x=0;
    return x;
}

int prime(int m)
{
    int j,i;
    if(m==1)
    return 0;
    j=sqrt(m);
    for(i=2;i<=j;j++)
    if(m%i==0)
    return 0;
    return 1;
}

int countdigit(int number,int digit)
{
    int c;
    if(number<0)
    number=-number;
    c=0;
    do{
        if(number%10==digit)
         c++;
           number=number/10;
      }while(number!=0);
    return c;
}    

int is(int number)
{
    int digit,sum,temp;
    temp=number;
    sum=0;
    while(temp!=0){
        digit=temp%10;
        temp=temp/10;
        sum=sum+pow(digit,3);
    }
return sum==number;
}

2.用数组来处理求Fibonacci数列问题(求前40项):

#include<stdio.h>
int main(void)
{
    int i;
    long int f[40]={1,1};
    for(i=2;i<40;i++)
    f[i]=f[i-2]+f[i-1];
    for(i=0;i<40;i++)
    {
        if(i%5==0)
    printf("
");
     printf("%12ld",f[i]);
    }
    printf("
");
}
原文地址:https://www.cnblogs.com/jyt1998/p/6035169.html