关于#c语言#的问题:help 各位看看我怎么修改才能输出

某厂家现要对产品进行抽检,在主函数中输入待检测的产品数目n和产品的质量信息:用1表示合格,0表示不合格,将产品的质量信息保存在数组中。定义一个函数checkCal(),在主函数中将存放产品质量信息的数组名和产品总数作为实际参数传给函数checkCal()函数,该函数计算出这批产品的合格率并将合格率返回给主函数,在主函数中输出这批产品的合格率

#include <stdio.h>

int checkCal(int n) {
    int hege,a,i=0,j=1,sum=0,x[100];
    while(j<=n) {
        scanf("%d",&a);
        if(a==0) {
            x[i]=j;
            sum++;
            i++;
        }
        j++;
    }
    hege=(float)sum/(float)n;
    return hege;
}
int main() {
    int a, j,n;
    printf("输入需要检查的产品数目:");
    scanf("%d",&n);
    printf("输入需要检查的产品结果 用空格隔开:");
    scanf("%d",&a);
    printf("检测了%d个产品,其中合格产品数量是%d个,合格率为%f:" ,a,j,checkCal(n));
    return 0;
}

修改如下,供参考:

#include <stdio.h>
float checkCal(int a[],int n) {
    float hege;
    int   i = 0, cnt = 0;
    for (i = 0; i < n; i++)
        if (a[i]) cnt++;
    hege = ((float)cnt / n) * 100.0;
    return hege;
}
int main() {
    int a[100], j, n;
    printf("输入需要检查的产品数目:");
    scanf("%d", &n);
    printf("输入需要检查的产品质量信息(用空格隔开):");
    for (j = 0; j < n; j++)
        scanf("%d", &a[j]);
    printf("检测了%d个产品,产品合格率为%.1f%%", n, checkCal(a, n));
    return 0;
}

  • 你这个j 要定义静态的,并初始化一个值
  • 静态 j 变量定义放到函数上面,函数里的 j也不要重新定义了,包括主函数,子函数