Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数返回结构中的错误 #包括 #包括“友好号码.h” int i,j; 结构友好 { 友好对; 整数大小; }; main() { int startnum=250; int-endnum=1000; 结构友好*ami; ami=友好配对(开始、结束); printf(“{”); for(int i=0;isize;i++) { printf(“{%d,%d}”,ami->anicablepair[i][0],ami->anicablepair[i][1]); } printf(“}”); } 友好*友好对(int startnum,int endnum) { int size=0; int因子(int); 友好记录; 对于(i=startnum;i=startnum;j--) { if((求和因子(i)=j)和&(求和因子(j)=i)和&(i!=j)) { 记录。友好对[size][0]=i; 记录。友好对[size][1]=j; 大小++; }}} 记录。大小=大小; 返回记录; } 整数因子(整数) { 整数和=0; 对于(i=1;i_C_Pointers_Function_Structure - Fatal编程技术网

函数返回结构中的错误 #包括 #包括“友好号码.h” int i,j; 结构友好 { 友好对; 整数大小; }; main() { int startnum=250; int-endnum=1000; 结构友好*ami; ami=友好配对(开始、结束); printf(“{”); for(int i=0;isize;i++) { printf(“{%d,%d}”,ami->anicablepair[i][0],ami->anicablepair[i][1]); } printf(“}”); } 友好*友好对(int startnum,int endnum) { int size=0; int因子(int); 友好记录; 对于(i=startnum;i=startnum;j--) { if((求和因子(i)=j)和&(求和因子(j)=i)和&(i!=j)) { 记录。友好对[size][0]=i; 记录。友好对[size][1]=j; 大小++; }}} 记录。大小=大小; 返回记录; } 整数因子(整数) { 整数和=0; 对于(i=1;i

函数返回结构中的错误 #包括 #包括“友好号码.h” int i,j; 结构友好 { 友好对; 整数大小; }; main() { int startnum=250; int-endnum=1000; 结构友好*ami; ami=友好配对(开始、结束); printf(“{”); for(int i=0;isize;i++) { printf(“{%d,%d}”,ami->anicablepair[i][0],ami->anicablepair[i][1]); } printf(“}”); } 友好*友好对(int startnum,int endnum) { int size=0; int因子(int); 友好记录; 对于(i=startnum;i=startnum;j--) { if((求和因子(i)=j)和&(求和因子(j)=i)和&(i!=j)) { 记录。友好对[size][0]=i; 记录。友好对[size][1]=j; 大小++; }}} 记录。大小=大小; 返回记录; } 整数因子(整数) { 整数和=0; 对于(i=1;i,c,pointers,function,structure,C,Pointers,Function,Structure,您将返回一个(友好*)-指向友好的指针,但您的函数将创建一个(友好的)(而不是一品脱到一) 而不是宣布 #include<stdio.h> #include "amicablenumber.h" int i,j; struct amicable { int **amicablePair; int size; }; main() { int startnum = 250; int endnum = 1000; struct amicable* a

您将返回一个(友好*)-指向友好的指针,但您的函数将创建一个(友好的)(而不是一品脱到一)

而不是宣布

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

int i,j;
struct amicable         
{
    int **amicablePair;
    int size;
};

main()
{

int startnum = 250;
int endnum = 1000;
struct amicable* ami;

ami = getAmicablePairs(startnum, endnum);   

printf("{");
for(int i = 0; i<ami->size; i++)
{
printf("{%d, %d}",ami->amicablePair[i][0], ami->amicablePair[i][1]);
}
printf("}");
}

amicable *getAmicablePairs(int startnum,int endnum)
{
    int size=0;
    int sumfactors(int);
    amicable record;
 for(i=startnum;i<=endnum;i++)
 {
 for(j=endnum;j>=startnum;j--)
 {
 if((sumfactors(i)==j)&&(sumfactors(j)==i) && (i!=j))
 {
  record.amicablePair[size][0]=i;
  record.amicablePair[size][1]=j;

  size++;
 }}}
 record.size=size;
 return record;
 }

  int sumfactors(int number)
 {
 int sum=0;
 for(i=1;i<number;i++)
 {
 if(number%i==0)
 sum +=i;
 }
 return sum;
 }
友好记录; 您需要执行以下操作(或同等操作):

友好的*记录=(友好的*)马洛克(友好的); 然后通过“记录->”而不是“记录”进行访问


注意:使用上述方法,您需要在完成上述分配后释放()该分配。

getAmicablePairs
声明返回指向友好的
指针:

amicable *record = (amicable *) malloc(sizeof(amicable));
amicable *getAmicablePairs(...)
但是您尝试返回一个友好的

amicable *record = (amicable *) malloc(sizeof(amicable));
amicable *getAmicablePairs(...)
而不是指向一个的指针

请注意一个“明显的”修复,即返回指向
记录的指针:

return record;
不起作用,因为当
getAmicablePairs
返回时,您将返回一个指向即将消失的变量的指针。相反,您需要使用
malloc
创建一个记录并返回该值;类似于这样:

return &record;
您需要将所有
记录更改为
记录->


还要注意的是,您正在写入结构的
amicablePair
成员,而没有分配它-这将导致崩溃。您需要
malloc
amicablePair
以及
amicable

我也会标记该语言:)顺便说一句,格式很混乱。你可以用正确缩进的代码得到更多的响应…没有人想处理你的代码,我们只是想阅读并能够提供帮助。