东本西 2021-05-10 14:25 采纳率: 0%
浏览 6

哥哥们求救,帮我看一下那里错了,[face]monkey2:019.png[/face][face

哥哥们求救,帮我看一下那里错了,[face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face]初学不懂呀! /*4.编程实现:接收两个数组的值,将这两个数组中的值依次相加保存在第三个数组中。sy7-4.c #include main() { int i; int num1[5], num2[5], num3[5]; int *ptr1, *ptr2, *ptr3; ptr1 = num1; ptr2 = num2; ptr3 = num3; 补充下面的程序。 }*/ #include int main() { int i; int num1[5], num2[5], num3[5]; int* ptr1, * ptr2, * ptr3; ptr1 = num1; ptr2 = num2; ptr3 = num3; printf("请输入num1得数字:\n"); for (i = 0; i < 5; i++) scanf_s("%d",ptr1+i); printf("%d", *(ptr1 + i)); printf("\n请输入num2得数字:\n"); for (i = 0; i < 5; i++) scanf_s("%d",ptr2); printf("%d", *(ptr2 + i)); printf("\n数组 num1 和数组 num2 的和为:\n"); for (i = 0; i < 5; i++); num3 [i]= num1[i] + num2[i]; for (i = 0; i < 5; i++) printf("%d\t",*(ptr3 +i)); }
  • 写回答

1条回答 默认 最新

  • BOXonline1396529 2024-06-30 18:18
    关注

    您好。您的代码没有任何格式,完全混乱了。同时您也没有粘贴代码的报错,所以我没有办法帮您检查代码的问题。

    我只能把您的问题交给 GPT 处理。以下是 GPT 生成的回答,您看看有没有帮助。


    确实,这个问题的代码格式和排版有些混乱,导致阅读和理解变得困难。我来帮你整理一下代码,并指出其中的问题。

    整理后的代码

    #include <stdio.h>
    
    int main() {
        int i;
        int num1[5], num2[5], num3[5];
        int* ptr1, * ptr2, * ptr3;
        ptr1 = num1;
        ptr2 = num2;
        ptr3 = num3;
    
        printf("请输入num1的数字:\n");
        for (i = 0; i < 5; i++) {
            scanf_s("%d", ptr1 + i);
        }
    
        printf("请输入num2的数字:\n");
        for (i = 0; i < 5; i++) {
            scanf_s("%d", ptr2 + i);
        }
    
        printf("\n数组 num1 和数组 num2 的和为:\n");
        for (i = 0; i < 5; i++) {
            num3[i] = num1[i] + num2[i];
        }
    
        for (i = 0; i < 5; i++) {
            printf("%d\t", *(ptr3 + i));
        }
    
        return 0;
    }
    

    发现的问题

    1. 数组输入输出的 printf 语句位置不正确:在输入数组元素时,printf 的位置和作用不明确,应该移到循环外。
    2. for 循环中的分号for (i = 0; i < 5; i++); 后面的分号导致循环体为空,需要去掉分号。
    3. scanf_s 函数scanf_s 是微软特有的安全函数,如果编译器不支持,可以用标准的 scanf 替代。

    修改后的代码

    #include <stdio.h>
    
    int main() {
        int i;
        int num1[5], num2[5], num3[5];
        int* ptr1, * ptr2, * ptr3;
        ptr1 = num1;
        ptr2 = num2;
        ptr3 = num3;
    
        printf("请输入num1的数字:\n");
        for (i = 0; i < 5; i++) {
            scanf("%d", ptr1 + i);  // 如果使用微软编译器,改为 scanf_s("%d", ptr1 + i);
        }
    
        printf("请输入num2的数字:\n");
        for (i = 0; i < 5; i++) {
            scanf("%d", ptr2 + i);  // 如果使用微软编译器,改为 scanf_s("%d", ptr2 + i);
        }
    
        printf("\n数组 num1 和数组 num2 的和为:\n");
        for (i = 0; i < 5; i++) {
            num3[i] = num1[i] + num2[i];
        }
    
        for (i = 0; i < 5; i++) {
            printf("%d\t", *(ptr3 + i));
        }
    
        return 0;
    }
    

    希望这样整理后能更清楚地展示代码逻辑,也更容易找到和解决问题。如果有更多问题或需要进一步帮助,请告诉我!

    评论

报告相同问题?

悬赏问题

  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?
  • ¥50 寻找fpga的benchmark
  • ¥50 如何在arduino上,实现用4×4矩阵键盘按键控制2004显示屏输出图中显示功能的代码?
  • ¥15 P1口接8个发光二极管,利用定时计数器1编写程序
  • ¥20 keil5编译找不到.h文件该如何解决
  • ¥15 安卓EVS如何开启服务正常实现功能