#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