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);
}
}
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));
}