对于结构体
struct a
{
char name[10];
int num;
}a[5], b[5];
我想比较这两个结构体数组的name,分别找出a,b之间相同和不同的name,用两重循环的话我知道怎么做。但是如果只用一层循环该怎么办?
不用代码啦,说一下思路就行,谢谢啦!
我想问一下两个结构体数组之间比较的问题
答案:2 悬赏:50 手机版
解决时间 2021-04-13 18:32
- 提问者网友:我们很暧昧
- 2021-04-12 20:34
最佳答案
- 五星知识达人网友:封刀令
- 2021-04-12 21:49
这本当就是应该用双重循环做的题,为何一定要单循环?不是不可以,而是没必要,且实质还是双重循环。因为比较两组多元素板块,总得一个板块的一个元素与另一个板块的所有元素对比,这个基本模式不会改变,还是遍历。思路你自己看代码吧——
//#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 "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;
}
全部回答
- 1楼网友:低音帝王
- 2021-04-12 23:23
#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;q
num); 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(); } 我的回答希望对你有帮助!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯