鱼C论坛

 找回密码
 立即注册
查看: 876|回复: 4

[已解决]输出中间的数字

[复制链接]
发表于 2022-3-21 20:39:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

正确的输入你参考前两楼的代码就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-21 20:49:35 | 显示全部楼层
#include <stdio.h>

int main()
{
    int n, c, p;
    int i = 0, array[1000];
    scanf("%d", &n);
    p = n;
    while (n--)
    {
        scanf("%d", &array[i++]);
    }
    c = array[(p - 1) / 2];
    printf("%d\n", c);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-3-21 21:04:06 | 显示全部楼层
#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    int arr[n];
    for(int i = 0; i < n; i++) scanf("%d", &arr[i]);
    printf("%d", arr[(n-1)/2]);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 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
所以你最后运行的结果才没有输入

正确的输入你参考前两楼的代码就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-21 22:44:18 | 显示全部楼层
int *p = &n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 04:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表