67在不在ᰔᩚ 2022-04-29 11:32 采纳率: 50%
浏览 13
已结题

调试问题zenmeban

为什么把四个seek函数放在(p+2)之前都能显示,放在之后就不可以了.
#include <stdio.h>
int main(void)
{
double aver(int
p, int n);
void seek(int* p, int n);
void good(int* p, int n);
int a[6] = { 56,78,45,50,89,1 };
int b[6] = { 89,86,90,98,95 ,2};
int c[6] = { 79,88,99,78,67 ,3};
int d[6] = { 95,78,90,99,89 ,4};
int* p;
p = a;
*(p + 1) = b[0];
*(p + 2) = c[0];
seek(a, 5); seek(b, 5); seek(c, 5); seek(d, 5);
(p + 3) = d[0];
seek(a, 5); seek(b, 5); seek(c, 5); seek(d, 5);
printf("%lf \n",aver(p, 4));
good(a, 5); good(b, 5); good(c, 5); good(d, 5);
return 0;
}
double aver(int
p, int n)
{
int i,sum;
sum = 0;
double a;
for (i = 0; i < n; i++)
sum = sum + p[i];
a = (double)sum / n;
return a;
}
void seek(int* p, int n)
{
int i;
int a = 0;
for (i = 0; i < n; i++)
if (p[i] < 60)
a = a + 1;
if (a > 1)
{
for (i = 0; i < n; i++)
printf("%d \n",p[i]);
aver(p, n);
printf("%lf \n",aver(p,n));
printf("%d \n",p[5]);

}
return;

}
void good(int* p, int n)
{
int i, j = 0;
for (i = 0; i < n; i++)
if (p[i] > 85)
j++;
if (aver(p, n) > 90)
printf("%d ", p[5]);
else if (j == 5)
printf("%d ", p[5]);
else printf("NULL ");
return;
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-04-29 12:09
    关注

    代码没什么问题啊,不显示什么?void seek(int* p, int n) 函数实现有不及格的才显示,2 3 4 都没有不及格的,当然不显示了。

    #include <stdio.h>
    int main(void)
    {
        double aver(int* p, int n);
        void   seek(int* p, int n);
        void   good(int* p, int n);
        int a[6] = { 56,78,45,50,89,1 };
        int b[6] = { 89,86,90,98,95 ,2 };
        int c[6] = { 79,88,99,78,67 ,3 };
        int d[6] = { 95,78,90,99,89 ,4 };
        int* p;
        p = a;
        *(p + 1) = b[0];
        *(p + 2) = c[0];
        seek(a, 5); seek(b, 5); seek(c, 5); seek(d, 5);
        *(p + 3) = d[0];
        seek(a, 5); seek(b, 5); seek(c, 5); seek(d, 5);
        printf("%lf \n", aver(p, 4));
        good(a, 5); good(b, 5); good(c, 5); good(d, 5);
        return 0;
    }
    double aver(int* p, int n)
    {
        int i, sum;
        sum = 0;
        double a;
        for (i = 0; i < n; i++)
            sum = sum + p[i];
        a = (double)sum / n;
        return a;
    }
    void seek(int* p, int n)
    {
        int i;
        int a = 0;
        for (i = 0; i < n; i++)
            if (p[i] < 60)
                a = a + 1;
        if (a > 1)
        {
            for (i = 0; i < n; i++)
                printf("%d \n", p[i]);
            //aver(p, n);
            printf("%lf \n", aver(p, n));
            printf("%d \n", p[5]);
        }
        return;
    }
    void good(int* p, int n)
    {
        int i, j = 0;
        for (i = 0; i < n; i++)
            if (p[i] > 85)
                j++;
        if (aver(p, n) > 90)
            printf("%d ", p[5]);
        else if (j == 5)
            printf("%d ", p[5]);
        else 
            printf("NULL ");
        return;
    }
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月6日
  • 创建了问题 4月29日

悬赏问题

  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析
  • ¥200 sqlite3数据库设置用户名和密码