gpt4 book ai didi

c - 关于C上struct的算法

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:51 26 4
gpt4 key购买 nike

我正在尝试通过在 C 上使用 struct 来解决问题。

它应该找到 3 个值中最大的一个,如果它是素数,则将其与所有其他值相加。如果不只是将最大的数字返回给主函数。我找不到哪里做错了。

#include <stdio.h>
#include <stdlib.h>
struct q {
int a, b, c, max;
}d;

func(struct q d1)
{
int max1;
max1=0;
int w=0;
int i;
if (d1.a>d1.b && d1.a>d1.c)
max1=d1.a;
if (d1.b>d1.a && d1.b>d1.c)
max1=d1.b;
if (d1.c>d1.b && d1.c>d1.a)
max1=d1.c;

for(i=2;i<max1;i++)
{
if (max1%i==0)
w=1;
}
if (w==0)
{
d1.a=d1.a+max1;
d1.b=d1.b+max1;
d1.c=d1.c+max1;
}
if (w==1)
{
d1.max=max1;
}
}

int main()
{
int i;
for(i=0;i<1;i++)
{
d.max=0;
puts("enter value of a b c:");
scanf("%d %d %d",&d.a,&d.b,&d.c);
func(d);
if(d.max==0) printf("%d %d %d",d.a,d.b,d.c);
else printf("%d",d.max);
}

}

最佳答案

我不确定算法逻辑。但错误是——

func(struct q d1) 

func(d);

d1 是传递参数 d 的副本。所以,修改d1,不会影响传递的参数d

您实际上应该将对象 d 的地址传递给函数。

关于c - 关于C上struct的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15731265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com