所以我有这个代码:
#include <stdio.h>
#include <stdlib.h>
int functie ( int v[], int nr, int z)
{
int i,count;
scanf("%d", &z);
for(i=0;i<nr;i++) {
if(z==v[i]) {
count=count+1;
}
}
return z;
}
int main()
{
int i,nr,z;
fscanf("%d", &z);
FILE *f;
FILE *g;
f=fopen("data-in.txt", "r");
fscanf(f,"%d",&nr);
int *v=malloc(nr*sizeof(int));
for(i=0;i<nr;i++) {
fscanf(f,"%d",&v[i]);
}
g=fopen("data-out.txt", "w");
fprintf(g,"%d %d", functie(v,nr,z));
fclose(f);
fclose(g);
free(v);
}
在我有 int z=0; 之前而不是尝试扫描我的 var z。 当我运行此程序时,我收到停止工作错误。
我有一个从文件中读取数字(整数)的数组,第一行是元素数量,第二行是元素。 我需要一个 var 让 z 来检查一个元素在 vector 中出现的次数(检查扫描的数字 z 是否等于一个元素并 +1 计数)
示例:
在文件中
4(因为我有 4 个元素)
1 2 3 3(我的元素)
将 z 扫描为 3 z==3 真 计数=1 再次 计数=2
最佳答案
这里有两个问题,都在 main
中。第一:
fscanf("%d", &z);
此函数需要第一个参数为 FILE *
,但您未指定该参数。大概您想从控制台读取,因此使用 scanf
:
scanf("%d", &z);
第二期:
fprintf(g,"%d %d", functie(v,nr,z));
您的格式字符串需要两个整数参数,但您只传入一个。摆脱额外的格式说明符:
fprintf(g,"%d", functie(v,nr,z));
关于使用 scanf 而不是 var=0 后,C 程序停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50613633/