当我尝试向数组中添加元素时出现问题,我总是得到itemID已经存在,我试图解决它,但是我无法
这是我的功能
int AddNewItem(){
FILE* f = fopen("items.txt", "a");
if(f == 0) {
printf("file is not present :\n");
return 0;
}
int ItemID,ItemQuantity,PricePerUnit, i = 0,flag = 0;
int ItemI[10], ItemQ[10],Price[10];
while(fscanf(f,"%d%d%d",&ItemI[i],&ItemQ[i],&Price[i])>0){
++i;
}
printf("Enter itemID: ");
scanf("%d",&ItemID);
for(i=0; i<10; i++)
{
if(ItemI[i]==ItemID)
{
flag = 1;
printf("the itemID already exists\n");
break;
}
else{
ItemI[i+1]=ItemID;
}
}
printf("Enter The price per unit ");
scanf("%d",&Price[i]);
fclose(f);
return ;
}
谢谢
这是我的档案
1007 5 30
1004 4 10
1003 3 20
1002 2 10
1006 4 40
1005 5 50
1001 1 70
1008 6 20
1010 4 90
1009 3 10
最佳答案
那是因为:
if(ItemI[i]==ItemID)
假设该语句在第一次迭代时为假。 'else'将被执行:
else {
ItemI[i+1]=ItemID;
}
因此,ItemI [1]被设置为ItemID。在下一次迭代中,当“ i”等于1时,“ if”语句始终变为true。这就是为什么它显示“ itemID已经存在”的原因
关于c - 在数组中添加项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47743942/