实验7

#include<stdio.h>
#include<math.h>
int sign(int x);
double even(int n);
int prime(int m); 
double countdigit(int number,int digit);
int number(int m,int n);
int main()
{
    int i,n;
    do{
        printf("********************************\n"); 
        printf("** -------------实验六:函数 ----------------- **\n"); 
        printf("** -------1.计算并输出分段函数f(x)的值 ------ **\n");
        printf("** -------2.使用函数求奇数和 ---------------- **\n");
        printf("** -------3.计算素数个数并求和 -------------- **\n");
        printf("** -------4.统计指定数字的个数 -------------- **\n");
        printf("**-------5.输出m~n之间的所有水仙花数 ------- **\n");    
        printf("********************************\n");
        printf("请输入题号:");
        scanf("%d",&i);
        switch(i){
            case 1:
            {
                int x,y;
                printf("输入任意值确认。\n");
                scanf("%d",&x);
                printf("请输入x值:");
                scanf("%d",&x);
                y=sign(x);
                printf("f(x)=%d\n",y);
            }break; 
            case 2:
               {
                int n,sum=0;
                double num;
                printf("输入任意值确认。\n");
                scanf("%d",&n);
                printf("输入一批正整数(以零或负数为结束标志):");                 
                do{
                       scanf("%d",&n);
                       num=even(n);
                       if(0==num){
                           printf("%d是奇数\n",n);
                       sum=sum+n;
                       }
                       else if(1==num){
                           printf("%d是偶数\n",n);
                       }
                       else{
                          printf("Unknow");
                       }
                }while(n>0);
                   printf("奇数和=%d\n",sum);
            
        
            }break;
            case 3:
            {
                   int sum=0,m,h=0,n;
                printf("输入任意值确认。\n");
                scanf("%d",&n);
                   printf("Input m,n:");
                scanf("%d%d",&m,&n);
                    for(m;m<=n;m++){
                if(prime (m)!=0){
                    h=h+m;
                    sum++;
                    }
                }
                printf("素数的个数为:%d,素数的合为:%d",sum,h);
            }     
            break;
            case 4:
            {
                   int digit=0,y=0,number,i,n;                           
                printf("输入任意值确认。\n");
                scanf("%d",&n);                   
                   double sum,sum1=0;                                                                                        
                   printf("Input number,digit,n(n为输入数字位数):");
                   scanf("%d%d",&number,&digit);
                   sum=countdigit(number,digit);               
            }
            break;
            case 5:
            {
                   int m,n;
                printf("输入任意值确认。\n");
                scanf("%d",&n);                
                printf("Input m,n:");
                scanf("%d%d",&m,&n);
                number(m,n);
            }break;
            case 0:break;
        }
    }while(i!=0);
    return 0;
} 
int sign(int x)
{
    int y;
    if(x>0) y=1;
    else if(x<0) y=-1;
    else y=0;
    return y; 
}
double even(int n)
{
    if(n%2==0) return 1;
    else return 0;
}
int prime(int m){
    int i,n;
    if(m==1)return 0;
    n=sqrt(m);
    for(i=2;i<=n;i++)
    if(m%i==0){
        return 0;
    }
    return 1;
}
double countdigit(int number,int digit)           
{                                                   
    int n,digit1,i,y=0;                           
    double sum,sum1=0;                                          
    digit1=number*10;
    scanf("%d",&n);                                  
    for(i=1;i<=n;i++){                   
        digit1=digit1/10;
        y=digit1%10;
        if(y==digit){
        sum1++;        
        }
    }
    printf("该数字中%d的个数为%.0lf",digit,sum1);
    return sum;                                    
}
int number(int m,int n){    
        for(m;m<n;m++){
        int digit=m;
        int digit1=0,digit2=0,digit3=0;        
        digit1=digit/100;digit%=100;
        digit2=digit/10;        
        digit3=digit%10;
        if(pow(digit1,3)+pow(digit2,3)+pow(digit3,3)==m){
        printf("%d是水仙花数\n",m); 
        }
        else printf("%d不是水仙花数\n",m);                
    }
    return 0;
}

 

posted @ 2016-12-24 06:23  刘悦  阅读(142)  评论(0编辑  收藏  举报