一段C语言程序,为什么IF判断无法成立,请直接说代码的修改方法?

#include
#include
#include
#define N 2
#define M 2

struct compete
{
char num[10];
char name[10];
float score[M];
float aver;
int no;
}com[N];

void delinfo()
{
int i,j;
char o[10];
char m[10];
printf("请输入需要删除的选手的参赛编号\n");
scanf("%s",&o);
for(i=0;i<N;i++)
{
struct compete temp;
//strcpy(temp.num,com[i].num);
strcpy(temp.num,o);
printf("取值%s",temp.num);
printf("对比值%s",com[i].num);
if(temp.num==com[i].num) //就是这里的判断 将com[i].num强转成int==o 也无法成立
{
printf("进入循环%s",o);
break;
}
}

for(j=i;j<M;j++)
{
    printf("执行语句%s",o);
    strcpy(com[j-1].num,com[j].num);
}

for(i=0;i<N;i++)
    com[i].no=i+1;
printf("编号\t姓名\t得分\n");
for(i=0;i<N;i++)
    printf("%s\t%s\t%.2f\n",com[i].num,com[i].name,com[i].aver);

return;

}

用strcmp(temp.num,com[i].num)看看,用==比较的好像是地址。

在C语言里面字符串是没有办法直接进行比较的。可以使用strcmp函数进行比较,单个的字符是可以进行比较的。