c语言练习1

题目1:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#include <stdio.h>
#include <time.h>

int main()
{
    int num[4];
    int i ,j ,k;
    int sum;
    int pins = 0;

    srand(time(NULL));

    for(i = 0 ; i < 4 ; i++)
    {
        num[i] = rand()%100;
        printf("%4d",num[i]);
    }

    printf("\n\n");

    for (i = 0 ; i < j ; i++)
    {
        for (j = 0 ; j < 4 ; j++ )
        {
            for (k = 0; k < 4 ; k++)
            {
                if((i != k)&&(i != j)&&(j != k))
                {
                    sum = num[i] + num[j] * 10 + num[k] *100;
                    pins++;
                    printf("%6d",sum);
                    if(pins%4 == 0)
                    {
                        printf("\n");
                    }
                }
            }
        }
    }
    printf("here is %d nums",pins);
    return 0;
}

题目2:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include <stdio.h>
#include <math.h>

int If_sqrt(int n)
{
    if(sqrt(n) == (int)sqrt(n))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int main()
{
    int i;
    for(i = 1 ; i < 100000 ; i++)
    {
        if(If_sqrt(i)&&If_sqrt(i+168))
        {
            printf("%6d\n", i);
        }
    }
    return 0;
}

将一个正整数分解质因数。例如:输入90,打印出90=233*5。

#include <stdio.h>

int prime(int n)
{
    int i;
    for (i = 2 ; i*i < n ; i++)
    {
        if(n%i == 0)
        {
            return 0;
        }
        else
        {
            return 1;
        }
    }
}

int main()
{
    int i ;
    int num;
    printf("plz input a number:\t");
    scanf("%d",&num);
    printf("\n");
    for(i = 2 ; i <= num ; i++)
    {
        if(prime(i)&&(num%i == 0))
        {
            printf("%4d",i);
            if (i != num)
            {
                printf("*");
            }
        }
    
    }
    printf("\n");
    return 0;
}

输入一行字符,分别统计出其中英文字母、空格、数字的个数。

#include <stdio.h>

int main()
{
    char a[100];
    int i , j ;
    int pinsc = 0;
    int pinsn = 0;
    int pinss = 0;
    gets(a);
    puts(a);
    for(i = 0 ; a[i] != '\0';i++)
    {
        if((a[i] >= 'a'&&a[i] <= 'z')||(a[i] >= 'A'&&a[i] <= 'Z'))
        {
            pinsc++;
        }
        if(a[i] >= '0'&&a[i] <= '9')
        {
            pinsn++;
        }
        if(a[i] == '\x20')
        {
            pinss++;
        }
    }
    printf("%4d %4d %4d",pinsc,pinsn,pinss);
    return 0;
}

输入两个正整数m和n,求其最大公约数和最小公倍数。

#include <stdio.h>

int Fun_Maxdiv(int a , int b)
{
    int temp;
    if (a > b)
    {
        temp = a;
        a = b;
        b = temp;
    }

    while(a%b != 0)
    {
        temp = a%b;
        a = b;
        b = temp;
    }
    return b ;
}

int Fun_Minmuti(int a,int b)
{
    int temp ;
    temp = Fun_Maxdiv(a,b);
    return (a*b)/temp ;
}

int main()
{
    int a,b ;
    printf("plz input two numbers: \n ");
    scanf("%d%d",&a,&b);
    printf("the max division is : %d\n", Fun_Maxdiv(a,b));
    printf("the min muti is : %d\n", Fun_Minmuti(a,b));
    return 0;
}

猜你喜欢

转载自blog.csdn.net/xyc895/article/details/84580233