抱歉,我觉得我真的搞砸了基于结构的几行代码......因为我是新手,并且最近几天努力去理解C.请检查以下代码并指导我在哪里错了...谢谢!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct family{
char name[20];
int age;
char father[20];
char mother[20];
};
//Function to compares two strings and returns 1 or 0
char siblings(struct family member1, struct family member2)
{
if(strcmp(member1.mother, member2.mother)==0)
return 1;
else
return 0;
}
int main()
{
//Following structure variables are decleared
struct family member1;
struct family member2;
//structure variables initilized with a string
member1.mother = "Rosy";
member2.mother = "Rosy";
//This function compares two strings and returns 1 or 0
siblings(member1.mother, member2.mother);
//trying to print resulst with respect to return from function
printf("%S\n",siblings(member1.mother, member2.mother)?"yes":"No");
system("PAUSE");
return 0;
}
答案 0 :(得分:1)
替换以下内容:
1-1:%S
应替换为%d
printf("%S\n",siblings(member1.mother, member2.mother)?"yes":"No");
1-2:如果您返回0或1,最好返回bool
或int
。
char siblings(struct family member1, struct family member2)
2:“PAUSE”应该是“暂停”
system("PAUSE");
3:使用strcpy
进行以下操作。
member1.mother = "Rosy";
member2.mother = "Rosy";
答案 1 :(得分:0)
替换
member1.mother = "Rosy";
member2.mother = "Rosy";
与
strcpy(member1.mother, "Rosy");
strcpy(member2.mother, "Rosy");
这是因为成员mother
不是指针,而是数组
修改强>
对兄弟姐妹的调用应为siblings(member1, member2)
而不是siblings(member1.mother, member2.mother)