永发信息网

我想问一下两个结构体数组之间比较的问题

答案:2  悬赏:50  手机版
解决时间 2021-04-13 18:32
对于结构体
struct a
{
char name[10];
int num;
}a[5], b[5];
我想比较这两个结构体数组的name,分别找出a,b之间相同和不同的name,用两重循环的话我知道怎么做。但是如果只用一层循环该怎么办?
不用代码啦,说一下思路就行,谢谢啦!
最佳答案
这本当就是应该用双重循环做的题,为何一定要单循环?不是不可以,而是没必要,且实质还是双重循环。因为比较两组多元素板块,总得一个板块的一个元素与另一个板块的所有元素对比,这个基本模式不会改变,还是遍历。思路你自己看代码吧——
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
struct a{
    char name[10];
    int num;
}a[5]={{"123",0},{"sdf",1},{"t",2},{"abc",3},{"qqq",4}},b[5]={{"y",0},{"t",1},{"sdf",2},{"qqq",3},{"666",4}};
int main(void){
    int i,j;
    for(j=i=0;j<5;i++)
        if(i==5)
            j++,i=0;
        else if(strcmp(a[i].name,b[j].name)==0)
            printf("a[%d] == b[%d]\n",i,j);
    return 0;
}
全部回答
#include //首先你在使用结构体也好,函数也好,必须遵从“先定义后使用”的原则 struct ex2 { long int num; float s[3]; }; // ------这个过程属于定义也起到了申明的作用 void myfun(struct ex2 *p) //你在mufun()功能函数中使用到了struct ex2 那么就必须在使用前申明 { int i;float k;struct ex2 *q; for(q=p;qnum); printf("输入学生各科成绩:"); for(i=0;i<3;i++) { scanf("%f",&k); q->s[i]=k; } } } void main() { int i,j;struct ex2 stu[5]; myfun(stu); for(i=0;i<3;i++) { printf("%ld号学生的成绩是:",stu[i].num); for(j=0;j<3;j++) printf("%5.1f",stu[i].s[j]); printf("\n"); } getch(); } 我的回答希望对你有帮助!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一句劝情侣不要天天腻在一起的句子
下面这段文字在表达上有一些错误,请用规定的
下个赛季NBA谁有可能得总冠军?
有没有说话声音能变好听的声卡耳机
赞美长白山温泉的句子,描写温泉的语句
桌面工具栏在右边,怎么调回来?
天润大厦-停车场地址有知道的么?有点事想过
单选题鸦片战争前后,新思想在中国萌发。林则
赵本山选谁上春晚2014
阔别30年相见的古诗词
龙胆紫溶液把染色体染成什么颜色?是蓝色?紫色
请问,我家阿旺到底是啥品种
有没有谁知道生物类的实验室做的EB胶都如何处
朝阳区朝阳路杨闸环岛附近有什么好吃的饭店
柯哲仁我想知道这个在什么地方
推荐资讯
在steam买了绝地求生,国服还需要再次购买吗
请问SHE12月10号要来梅州市开歌友会吗?
怎么隐藏或取消360独立播放器显示?
美鞋馆地址在什么地方,想过去办事
我半年前到哈尔滨花2800多元在秋林集团商场买
梦幻诛仙最高几级
2008年奥运吉祥物福娃的外材料为纯羊毛线,内
如图是根据生物的特征进行分类的图示.例如,
如图所示,某同学在做俯卧撑运动,可将他视为
请说说什么的山岭
我想要养一只哈士奇狗狗,一个月要花多少钱啊
加绒保暖打底衫味道很臭 很久了还是去不掉 怎
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?