....000 2021-07-27 18:22 采纳率: 50%
浏览 47
已结题

c语言 关于奇数丢弃问题

#include<stdio.h>
#include <string.h>
int y[2000] = {0};
int x[2000] = {0};
int func(int data){

    if(data == 1){
            printf("end number is %d\n",y[data]);
    }
    int i,r,n = 1;
    for(i = 1;i <= data; i++){
            if(i % 2 == 1){
                    y[i] = -1;
            }else{
                    x[n++] = y[i];
            }
    }
    memset(y,-1,sizeof(y));
    for(r = 1;r < n;r++){
            y[r] = x[r];
    }
    func(n-1);
    return 0;

}
int main(){
int data;

    printf("you input nuumber:\n");
    scanf("%d",&data);
            int i;
            for(i = 1;i < data+1;i++){
                    y[i] = i;
            }
            func(data);
    return 0;

}

为什么执行了这个程序之后能得到正确的答案 但是运行结果却有段错误

img

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-07-27 18:33
    关注

    int func(int data)改为void func(int data)
    并且去掉return。

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

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日