试着写一个简单的结构基础代码......没有得到?

时间:2013-03-14 03:10:09

标签: c

抱歉,我觉得我真的搞砸了基于结构的几行代码......因为我是新手,并且最近几天努力去理解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;
}

2 个答案:

答案 0 :(得分:1)

替换以下内容:

1-1:%S应替换为%d

printf("%S\n",siblings(member1.mother, member2.mother)?"yes":"No");

1-2:如果您返回0或1,最好返回boolint

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)