gpt4 book ai didi

c - 我应该编写一个程序来对结构数组进行排序,但我不知道这样做

转载 作者:行者123 更新时间:2023-11-30 21:29:00 26 4
gpt4 key购买 nike

编辑后

<小时/>

代码是:

<小时/>
#include <stdio.h>
#include <string.h>

struct names//defining struct array with leinght of (3)
{
char firstname[50];
char lastname[50];
int age;
}n[4];

void show(struct names n[],int);//print the struct elements on the screen
void sortbyage(struct names n[],int);//sort the struct elements by age

int main(void)
{
struct names n[4];
int len=3;

strcpy(n[0].firstname,"david");
strcpy(n[0].lastname,"bekham");
n[0].age=18;
strcpy(n[1].firstname,"cristiano");
strcpy(n[1].lastname,"ronaldo");
n[1].age=20;
strcpy(n[2].firstname,"iron");
strcpy(n[2].lastname,"man");
n[2].age=16;
show(n,len);
sortbyage(n,len);
show(n,len);

return 0;
}
void show(struct names n[],int len)
{
for(int i=0;i<3;i++)
{
printf("%d-first name ==>%s\n",i+1,n[i].firstname);
printf("%d-last name ==>%s\n",i+1,n[i].lastname);
printf("%d-age==>%i\n",i+1,n[i].age);
}
}
void sortbyage(struct names n[],int len)
{
// int help=0;
for(int i=len-1;i>0;i--)
{
for(int j=0;j<i;j++)
{
if(n[j].age>n[j+1].age)
{
n[4]=n[j];
n[j]=n[j+1];
n[j+1]=n[4];
}
}
}

}
<小时/>

编辑后就可以了

<小时/>

注意:在运行时,它在最后一行键入此消息:* process returned -1073741819 *)) 我该如何解决这个问题,这是一个大问题还是无关紧要? ??

最佳答案

您需要按如下方式访问。请修改您的代码如下

if(n[j].age > n[j+1].age)

希望这有帮助。

编辑:请按如下方式修改 sortbyage() 函数,它可以正常工作。

void sortbyage(struct names n[],int len)
{
struct names temp;
for(int i=0;i<len;i++)
{
for(int j=i+1;j<len;j++)
{
if(n[i].age > n[j].age)
{
temp = n[i];
n[i] = n[j];
n[j] = temp;
}
}
}
}

关于c - 我应该编写一个程序来对结构数组进行排序,但我不知道这样做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35819897/

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