「已注销」 2023-10-02 01:25 采纳率: 62.5%
浏览 4
已结题

这两边有啥区别吗?我觉得除了字母不一样其他都一样 但是左边无法输出 右边却可以

正确的:



```c
#include<stdio.h>
void PrintArr(int a[],int n)
{
    for(int i=0;i<n-1;i++)//利用循环实现元素输出 
    {
        printf("%d",a[i]);//输出数字 
    if(i<n-2) printf(" ");//当输出数字并且不是最后一个数字之时,输出一个空格 
    }
}
void del(int n,int a[],int x)
{
    for(int i=x;i<n;i++)//从第x位开始,将数组元素每次用后一位取代。 
    a[i]=a[i+1];//前一位变成后一位 
}
int a[100];//开辟数组a的空间 
int main()
{
    int i,n,x;//定义循环变量i和数组元素个数n以及要删除的元素下标x 
    scanf("%d",&n);//键盘输入n 
    for(i=0;i<n;i++)//键盘输入数组a[] 
    scanf("%d",&a[i]);
    scanf("%d",&x);//键盘输入x 
    del(n,a,x);//执行del函数 
    PrintArr(a,n);//执行PrintArr函数
    return 0;//程序正常结束
} 


我的:
#include<stdio.h>
void PrintArr(int a[], int n)
{
    for(int c=0;c<n-1;c++)
    {
        printf("%d ",a[c]);
     } 
}
void del(int a[], int n, int i)
{
    for(int p=i;i<n;p++)
    {
        a[p]=a[p+1];
    }
}
int a[100]; 
int main()
{
    int n,i,j;
    scanf("%d",&n);
    for(j=0;j<n;j++)
    {
       scanf("%d",&a[j]);
    }
    scanf("%d",&i);
    del(a,n,i);
    PrintArr(a,n);
    return 0;
}

```

  • 写回答

2条回答 默认 最新

  • 记得开心一点啊 2023-10-02 02:07
    关注

    del里,是p<n不是i<n

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月10日
  • 已采纳回答 10月2日
  • 创建了问题 10月2日