我在liste_tmp中有一些指针数组,值为“123”,“456”,“123”
宣言:
char *no_rlt_liste[5] , *liste_tmp[5]; int i, j, count =0;
for (i = 0 ; i < n; i++){
for ( j= 0 ; j< count; j++){
if (liste_tmp[i] == no_rlt_liste[j]){
break;
}
if (j == count){
no_rlt_liste[count] = liste_tmp[i];
printf(" ENTER\n");
count++;
}
}
}
for (i = 0 ; i < count; i++)
printf("Final result %s\n", no_rlt_liste[i]);
上面的代码不会产生结果。无法识别错误。 任何帮助? 感谢
答案 0 :(得分:3)
由于条件for
,您的j< count
循环永远不会运行,并且您已设置count =0
。
答案 1 :(得分:2)
您将count
初始化为0
会导致内部for循环无法执行(因为j < 0
始终为false
),因此您的整个循环无效。
for (i = 0 ; i < n; i++)
{
int flag = 0;
for (j= 0; j< count; j++)
{
if (liste_tmp[i] == no_rlt_liste[j])
{
flag = 1
break;
}
}
if (!flag)
{
no_rlt_liste[count] = liste_tmp[i];
printf(" ENTER\n");
count++;
}
}
另外,请注意,如果您不想比较char-pointers,则需要使用strcmp
,而不是它们的内容:
if (strcmp(liste_tmp[i], no_rlt_liste[j]) == 0)
{
flag = 1
break;
}