大佬们帮小白纠下错

weixin_56910574 2021-04-28 01:05:00
题目是 任意输入10个整型元素放入数组a中,求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。
...全文
473 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_38102364 2021-05-09
  • 打赏
  • 举报
回复
感谢大佬们的回答,我懂了好多
luj_1768 2021-05-05
  • 打赏
  • 举报
回复
对题目理解有问题:题意应该是十个数据,输出九个数据,第一个数据与第二个数据的和,第二个数据与第三个数据的和,。。。 审题要仔细,对题意理解错了、很容易的送分题就错过了。
源代码大师 2021-05-03
  • 打赏
  • 举报
回复
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
qzjhjxj 2021-04-28
  • 打赏
  • 举报
回复
引用 6 楼 自信男孩 的回复:
[quote=引用 5 楼 qzjhjxj 的回复:][quote=引用 3 楼 自信男孩 的回复:][quote=引用 1 楼 qzjhjxj 的回复:]供参考:
#include<stdio.h>

int main()
{
    int a[10]={0},b[5]={0},i,j;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0,j=0;i<10;i+=2,j++)
        b[j]=a[i]+a[i+1];
    for(j=0;j<5;j++){
        printf("%3d",b[j]);
        if((j+1)%3==0||(j+1)==5)printf("\n");
    }
    
    return 0;
}
for(i=0,j=0;i<10;i+=2,j++)  
        b[j]=a[i]+a[i+1];  //这个地方应该会越界吧,当i=9时,i+1就是10
[/quote]不会出现9,i=i+2,到8就跳出了。 [/quote] 确实,不会,没看你的i+=2,这个相邻元素,理解上有分歧~[/quote]楼主的想法
自信男孩 2021-04-28
  • 打赏
  • 举报
回复
引用 5 楼 qzjhjxj 的回复:
[quote=引用 3 楼 自信男孩 的回复:][quote=引用 1 楼 qzjhjxj 的回复:]供参考:
#include<stdio.h>

int main()
{
int a[10]={0},b[5]={0},i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0,j=0;i<10;i+=2,j++)
b[j]=a[i]+a[i+1];
for(j=0;j<5;j++){
printf("%3d",b[j]);
if((j+1)%3==0||(j+1)==5)printf("\n");
}

return 0;
}


for(i=0,j=0;i<10;i+=2,j++)  
b[j]=a[i]+a[i+1]; //这个地方应该会越界吧,当i=9时,i+1就是10
[/quote]不会出现9,i=i+2,到8就跳出了。
[/quote]
确实,不会,没看你的i+=2,这个相邻元素,理解上有分歧~
qzjhjxj 2021-04-28
  • 打赏
  • 举报
回复
引用 3 楼 自信男孩 的回复:
[quote=引用 1 楼 qzjhjxj 的回复:]供参考:
#include<stdio.h>

int main()
{
    int a[10]={0},b[5]={0},i,j;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0,j=0;i<10;i+=2,j++)
        b[j]=a[i]+a[i+1];
    for(j=0;j<5;j++){
        printf("%3d",b[j]);
        if((j+1)%3==0||(j+1)==5)printf("\n");
    }
    
    return 0;
}
for(i=0,j=0;i<10;i+=2,j++)  
        b[j]=a[i]+a[i+1];  //这个地方应该会越界吧,当i=9时,i+1就是10
[/quote]不会出现9,i=i+2,到8就跳出了。
自信男孩 2021-04-28
  • 打赏
  • 举报
回复
 #include<stdio.h>

#define SIZE 10
int main()
{
int a[SIZE], b[SIZE]={0};
int i, j;

for(i = 0; i < SIZE; i++)
scanf("%d", &a[i]);

for (i = 0, j = 0; i < SIZE-1; i++) {
b[j++] = a[i] + a[i+1];
}

for (i = 0; i < j; i++)
printf("%d%c", b[i], (i+1) % 3 ? ' ':'\n');

/*
for(i=0,j=0;i<10;i+=2,j++)
b[j]=a[i]+a[i+1];
for(j=0;j<5;j++){
printf("%3d",b[j]);
if((j+1)%3==0||(j+1)==5)printf("\n");
}
*/

return 0;
}

供参考~

相邻两个元素之和,比如0 1 2 3 4 5 6 7 8 9 ,楼主的理解是0 1, 2 3等等,我的理解是0 1, 1 2, 2 3等等这样的一组,这样也叫相邻两个元素吧
自信男孩 2021-04-28
  • 打赏
  • 举报
回复
引用 1 楼 qzjhjxj 的回复:
供参考:
#include<stdio.h>

int main()
{
int a[10]={0},b[5]={0},i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0,j=0;i<10;i+=2,j++)
b[j]=a[i]+a[i+1];
for(j=0;j<5;j++){
printf("%3d",b[j]);
if((j+1)%3==0||(j+1)==5)printf("\n");
}

return 0;
}


for(i=0,j=0;i<10;i+=2,j++)  
b[j]=a[i]+a[i+1]; //这个地方应该会越界吧,当i=9时,i+1就是10
赵4老师 2021-04-28
  • 打赏
  • 举报
回复
b[5]应改为b[9]
qzjhjxj 2021-04-28
  • 打赏
  • 举报
回复
供参考:
#include<stdio.h>

int main()
{
    int a[10]={0},b[5]={0},i,j;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0,j=0;i<10;i+=2,j++)
        b[j]=a[i]+a[i+1];
    for(j=0;j<5;j++){
        printf("%3d",b[j]);
        if((j+1)%3==0||(j+1)==5)printf("\n");
    }
    
    return 0;
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧