两个C语言编程(函数),需要代码即可

1.编写一个带参数的宏计算x²。从键盘输入两个浮点数a、b,计算并输出(a+b)²、(a-b)²。
2.在一个源程序文件中编写一个函数void fun(int n),将指定的自然数分解成质因子的连乘积,例如:88=222*11。然后在另一个源程序文件中编写main函数,调用fun函数分解所有3位自然数。
提示:可以用文件包含,也可以使用多文件编译。

第一题


#include<stdio.h>
#define mul(x) ((x)*(x))
int main() {
    float a, b;
    scanf("%f%f", &a, &b);
    printf("%f\t%f", mul(a + b), mul(a - b));
}

第二题

#include<stdio.h>
void fun(int n) {
    int i;
    while (n != 1) {
        for (i = 2;; ++i) {
            if (n % i == 0) {
                if (n / i == 1)
                    printf("%d", i);
                else
                    printf("%d*", i);
                n = n / i;
                break;
            }
        }
    }
    printf("\n");
}
int main() {
    int i;
    for (i = 100; i < 1000; ++i) {
        printf("%d=", i);
        fun(i);
    }
}

img

1.

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

#define SQUARE(x) ((x) * (x))  // 定义宏计算x²

int main()
{
    double a, b;

    printf("请输入两个浮点数a、b: ");
    scanf("%lf%lf", &a, &b);

    printf("(a b)² = %.2lf\n", SQUARE(a + b));  // 计算并输出 (a b)²
    printf("(a-b)² = %.2lf\n", SQUARE(a - b));  // 计算并输出 (a-b)²

    return 0;
}

2.

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

// 将指定的自然数 n 分解成质因子的连乘积
void fun(int n)
{
    int i;

    printf("%d = ", n);

    // 分解质因子
    for (i = 2; i <= sqrt(n); i++)  // 从2到sqrt(n)枚举因子
    {
        while (n % i == 0)  // 如果 i 是 n 的因子
        {
            printf("%d ", i);  // 输出 i
            n /= i;  // n 除以 i
        }
    }

    // 如果 n 不是质数,那么最后一个因子就是 n 本身
    if (n > 1)
        printf("%d", n);

    printf("\n");  // 输出换行符
}


#include <stdio.h>
#define XX(x) ((x) * (x))
int main()
{
    float a, b;
    scanf("%f%f", &a, &b);
    printf("%f %f", XX(a + b), XX(a - b));
}
t.h

#include <stdio.h>

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

void fun(int n)
{
    int x = n;
    printf("%d=", x);
    for (int i = 2; i < x; i++)
    {
        if (x % i == 0 && isP(i))
        {
            printf("%d*", i);
            x /= i;
            i = 1;
        }
    }
    printf("%d\n", x);
}

t.c

#include <stdio.h>
#include "t.h"

int main()
{
    for (int i = 100; i < 1000; i++)
    {
        fun(i);
    }
    return 0;
}

o

望采纳!点击该回答右侧的“采纳”按钮即可采纳!!!
1.

#include <stdio.h>

#define SQUARE(x) ((x) * (x))

int main()
{
float a, b;
printf("请输入两个浮点数a、b:");
scanf("%f%f", &a, &b);
printf("(a + b) ^ 2 = %.2f\n", SQUARE(a + b));
printf("(a - b) ^ 2 = %.2f\n", SQUARE(a - b));
return 0;
}

2

#include <stdio.h>
//fun() function 
void fun(int n) 
{ 
    for (int i=2; i<=n; i++) 
    { 
        if (n%i == 0) 
        { 
            printf("%d * ", i); 
            fun(n/i); 
            break; 
        } 
    } 
    if (n == 1)
     {
        printf("1\n"); 
    }
} 

// Main Function 
int main(void) 
{ 
    for (int i=100; i<1000; i++) 
    { 
        printf("%d=", i); 
        fun(i); 
    } 
    return 0; 
}


#include<stdio.h>
int main() {
    float a, b;
    scanf("%f%f", &a, &b);
    printf("%f\t%f", (a + b) * (a + b), (a - b) * (a - b));
}