#include <stdio.h>
#include <stdlib.h>

int main()
{
   float marks;
   char sports;
   char dance[10];

   printf("Enter your marks:\n");
   scanf(" %f",&marks);

   printf("Do you play sports?? <y/n>\n");
   scanf(" %c",&sports);

   printf("Do you dance?? <yes/no>\n");
   scanf(" %s",dance);

   if((marks >=70) && (sports == 'y') &&(dance == "yes"))
  {
    printf("You are a Good Student\n");
} else{
    printf("You are a Average student\n");
}

return 0;




}


在任何情况下都不会获得输出,因为-你是一个好学生
如果我将舞蹈作为char来获取输出,但是我希望它使用字符串来解决。
谁能告诉我这段代码有什么问题。

最佳答案

当您执行dance == "yes"时,您将比较两个指针(指向数组dance中第一个元素的指针和指向"yes"中第一个字母的指针)。而且那两个指针永远不会相同。

要比较字符串,您需要使用strcmp函数:

strcmp(dance, "yes") == 0

10-06 07:41