2 a82933728 a82933728 于 2014.09.08 11:20 提问

一段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;

}

2个回答

c10234731
c10234731   2014.09.08 21:08

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

u010136832
u010136832   2014.09.09 09:26

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!