PeterNzz 发表于 2022-3-21 20:39:44

输出中间的数字

/*n表示即将输入的数据个数,希望输出中间的那个数,为什么编译后运行的结果没有输出?*/
#include<stdio.h>
int main()
{
        int n,c,p=n;
        int i=0,array;
        scanf("%d",&n);
        while(n--)
        {
                scanf("%d",&array);
        }
        c=array[(p-1)/2];
        printf("%d\n",c);
        return 0;
}

ckblt 发表于 2022-3-21 20:49:35

#include <stdio.h>

int main()
{
    int n, c, p;
    int i = 0, array;
    scanf("%d", &n);
    p = n;
    while (n--)
    {
      scanf("%d", &array);
    }
    c = array[(p - 1) / 2];
    printf("%d\n", c);
    return 0;
}

傻眼貓咪 发表于 2022-3-21 21:04:06

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    int arr;
    for(int i = 0; i < n; i++) scanf("%d", &arr);
    printf("%d", arr[(n-1)/2]);
    return 0;
}

gandixiwang 发表于 2022-3-21 21:53:44

因为你这个代码中变量p=0
你在开头就给p赋值了

开头n自动初始化为0,所以n=0,你又写p=n,所以p=0

后面你用 scanf("%d",&n); 改变了n的值,但是你没有写 p=n 所以p仍然等于0
所以你最后运行的结果才没有输入

正确的输入你参考前两楼的代码就好了

傻眼貓咪 发表于 2022-3-21 22:44:18

int *p = &n
页: [1]
查看完整版本: 输出中间的数字