WDHK 2022-01-20 17:52 采纳率: 87.5%
浏览 75
已结题

C语言(标题不知道怎么写)

问题遇到的现象和发生背景

改错

问题相关代码,请勿粘贴截图
#include <stdio.h>
void main() {
    
    //程序完成以下功能主函数完成数组的初始化操作
//函数完成数组元素逐个输出操作,p为指针变量
    int a[10] = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
    output(a, 10);
}
void output(int b, int n)
{
    int n;
        int* p;
    for (p = &b; p <  (b + 10); p++)
        printf("%d", p);
}


运行结果及报错内容 ((Visual Studio 2022))
严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C2075    “a”: 初始化需要带括号的初始值设定项列表    
消息    lnt-uninitialized-local    未初始化本地变量。        11    
警告    C4013    “output”未定义;假设外部返回 int    5    
错误    C2371    “output”: 重定义;不同的基类型        7    
错误    C2082    形参“n”的重定义    C语言    9    
警告    C4047    “<”:“int *”与“int”的间接级别不同    11    
警告    C4477    “printf”: 格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“int *”
警告    C4313    “printf”: 格式字符串中的“%d”与“int *”类型的参数 1 冲突    C语言        


我的解答思路和尝试过的方法

int=output(增加报错了)

我想要达到的结果

程序完成以下功能主函数完成数组的初始化操作
output函数完成数组元素逐个输出操作,p为指针变量

  • 写回答

2条回答 默认 最新

  • 四海一叶秋 2022-01-20 18:36
    关注

    根据你代码修改的:

    #include <stdio.h>
    
    void output(unsigned long long b, int n)
    {
        int* p;
        for (p = (int *)b; p < (int*)b + n; p++)
            printf("%d ", *p);
    } 
    void main() {
        //程序完成以下功能主函数完成数组的初始化操作
        //函数完成数组元素逐个输出操作,p为指针变量
        int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        output((unsigned long long)&a, 10);
    }
    
    ```c
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 修改了问题 1月20日
  • 修改了问题 1月20日
  • 展开全部