Problem A: 程序填充(函数、指针):去数组负数

Description

下面程序中"____ N ____“是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1 3 4 6 #include < stdio.h > void f(int *a,int *m) { int i,j; for(i=0;i < *m;i++) if(a[i] < 0) { for(j=i–;j < *m-1;j++) a[j]=a[j+1]; 1; } } void main() { int i,n=7,x[7]={1,-2,3,4,-5,6,-7}; 2; for(i=0;i < n;i++) printf(”%5d",x[i]); printf("\n"); }

Input

Output

输出删除负数后的数组元素

Sample Input

Sample Output

    1   3   4   6

代码实现

下面第一个代码
看第二个改成int main 然后return 0
这个报错
在这里插入图片描述

#include<stdio.h>
void f(int *a,int *m)
{
    int i,j;
    for(i=0;i<*m;i++)
        if(a[i]<0)
        {
            for(j=i--;j<*m-1;j++)
                a[j]=a[j+1];
            (*m)--;
        }
}
void main()
{
    int i,n=7,x[7]={1,-2,3,4,-5,6,-7};
    f(x,&n);
    for(i=0;i<n;i++)
        printf("%5d",x[i]);
    printf("\n");
}
#include<stdio.h>
void f(int *a,int *m)
{
    int i,j;
    for(i=0;i<*m;i++)
        if(a[i]<0)
        {
            for(j=i--;j<*m-1;j++)
                a[j]=a[j+1];
            (*m)--;
        }
}
int main()
{
    int i,n=7,x[7]={1,-2,3,4,-5,6,-7};
    f(x,&n);
    for(i=0;i<n;i++)
        printf("%5d",x[i]);
    printf("\n");
    return 0;
}
发布了149 篇原创文章 · 获赞 14 · 访问量 9007

猜你喜欢

转载自blog.csdn.net/weixin_45485719/article/details/103367659