vaghxc 2024-01-06 16:44 采纳率: 88.2%
浏览 3
已结题

求答疑 输入数据后输出结果空白

题目是 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一个函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。(就是分成两部分数字后倒置)
想知道为什么输入数据后输出结果为空白

img

#include<stdio.h>
int chuli(int *p,int n,int m)
{
    int str1[m],str2[n-m];
    for(int i=0;i<m;i++)
    {
        str1[i]=*(p+n-m);
    }
    for(int i=0;i<n-m;i++)
    {
        str2[i]=*(p+i);
    }
    for(int i=0;i<m;i++)
    *(p+i)=str1[i];
    for(int i=0;i<n-m;i++)
    *(p+i+m)=str2[i];
}
int main()
{
    int str[9];
    printf("请输入数据");
    for(int i=0;i<9;i++)
    {
        scanf("%d",str[i]);
    }
    chuli(str,9,3);
    printf("输出结果为");
    for(int i=0;i<10;i++)
    {
        printf("%d ",str[i]);
    }
    return 0;
}

  • 写回答

2条回答 默认 最新

  • 虫鸣@蝶舞 2024-01-06 18:01
    关注

    你的代码有以下几个错误:

        1.    在 chuli 函数中,您在移动元素时没有正确处理索引。应该是 str1[i]=*(p+n-m+i); 而不是 str1[i]=*(p+n-m);。
        2.    您的 chuli 函数没有返回值。由于您设计的函数不需要返回值,可以将其类型改为 void3.    在 main 函数中,读取输入时应该使用 scanf("%d", &str[i]); 而不是 scanf("%d", str[i]);。
        4.    最后的输出循环中,循环条件应该是 i < 9 而不是 i < 10。
    请参考gpt的代码
    
    
    #include<stdio.h>
    
    void chuli(int *p, int n, int m) {
        int str1[m], str2[n-m];
        for (int i = 0; i < m; i++) {
            str1[i] = *(p+n-m+i);
        }
        for (int i = 0; i < n-m; i++) {
            str2[i] = *(p+i);
        }
        for (int i = 0; i < m; i++) {
            *(p+i) = str1[i];
        }
        for (int i = 0; i < n-m; i++) {
            *(p+i+m) = str2[i];
        }
    }
    
    int main() {
        int str[9];
        printf("请输入数据: ");
        for (int i = 0; i < 9; i++) {
            scanf("%d", &str[i]);
        }
        chuli(str, 9, 3);
        printf("输出结果为: ");
        for (int i = 0; i < 9; i++) {
            printf("%d ", str[i]);
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月14日
  • 已采纳回答 1月6日
  • 创建了问题 1月6日

悬赏问题

  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错
  • ¥15 java python或者任何一种编程语言复刻一个网页
  • ¥20 如何通过代码传输视频到亚马逊平台
  • ¥15 php查询mysql数据库并显示至下拉列表中
  • ¥15 freertos下使用外部中断失效
  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 devserver配置完 启动服务 无法访问static上的资源
  • ¥15 解决websocket跟c#客户端通信