c语言新手编程因式分解,C语言编程问题:因式分解 参数返回问题

本文通过两个C++代码示例,分别讨论了因数分解的实现以及函数返回指针时应注意的问题。第一个例子展示了如何判断一个数是否为素数并进行因式分解,第二个例子则探讨了返回局部变量地址的两种方法:动态分配内存和使用静态变量,强调了内存管理和指针安全的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.因式分解

#include

#include

using namespace std;

bool IsPrime(int n);

void Resolve(int n);

int main()

{

int n;

cout<0):";

cin>>n;

if(n==1)

cout<

else if(IsPrime(n))

cout<

else // >1 and not prime

Resolve(n);

cout<

return 0;

}

bool IsPrime(int n)

{

int k,i;

k=static_cast(sqrt((double)n));

if(n==1)

return false;

for(i=2;i<=k;i++)

{

if(n%i==0)

break;

}

if(i>k)

return true;

else

return false;

}

void Resolve(int n)

{

int i;

cout<

i=2;

while(1)

{

if(IsPrime(i)&&n%i==0)

{

cout<

n=n/i;

}

else

i++;

if(n==1)

break;

}

}

2.函数返回类型为指针需要注意的问题

#include

#include

typedef struct student

{

char sex;

char name[10];

}stu;

char *get();

int main()

{

printf("1. %s\n",get());

printf("2. %s\n",get());

return 0;

}

char *get()

{

stu doctor;

doctor.sex='M';

strcpy(doctor.name,"wang");

//方法1:分配堆(由程序员自己释放),返回局部变量的地址

char *s;

int len=strlen((char *)&doctor);

s=new char[len+1];

strcpy(s,(char *)&doctor);

return s;

//return (char *)&doctor;

}

char *get()

{

static stu doctor;//方法2:申明为static类型,返回局部变量的地址

doctor.sex='M';

strcpy(doctor.name,"wang");

return (char *)&doctor;

}

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值