| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4144 人关注过本帖, 1 人收藏
标题:通过键盘输入10个整数,将其保存在一维数组中,编程把该数组中所有为偶数的数 ...
只看楼主 加入收藏
吴佳俊
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-4-5
结帖率:100%
收藏(1)
已结贴  问题点数:15 回复次数:7 
通过键盘输入10个整数,将其保存在一维数组中,编程把该数组中所有为偶数的数 放在另一个数组中,用指针的方法进行编程。
通过键盘输入10个整数,将其保存在一维数组中,编程把该数组中所有为偶数的数 放在另一个数组中,用指针的方法进行编程。求大佬,帮忙改改,并解释一下
#include<stdio.h>
void main()
{
    int a[10],b[10],i,j,*p;
    p=a;
    printf("input:");
    for(i=0;i<10;i++)
    {
        scanf("%d",p++);
    }
    for(i=0;i<10;i++)
    if(*(p+i)%2==0)
    {
        j=0;
        b[j]=*(p+i);
        j++;
    }
   
    for(p=b;p<(b+10);p++)
    printf("%d",*p);
}
搜索更多相关主题的帖子: 键盘 一个数 编程 偶数 指针 
2020-05-22 19:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:10 
第二个循环伊始,p值不对,已经出了a数组。
第二个循环,永远都是b[0]呀?
2020-05-22 19:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:1 
第三个循环,b数组的10个元素未必全被赋值了
2020-05-22 19:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:1 
程序代码:
#include <stdio.h>

int main( void )
{
    int a[10];
    const size_t n = sizeof(a)/sizeof(*a);
    for( int* p=a; p!=a+n; ++p )
        scanf( "%d", p );

    int b[n];
    int* b_end = b;
    for( int* p=a; p!=a+n; ++p )
        if( (*p)%2 == 0 )
            *b_end++ = *p;

    for( int* p=b; p!=b_end; ++p )
        printf( "%d ", *p );
}
2020-05-22 19:39
吴佳俊
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-4-5
收藏
得分:0 
回复 2楼 rjsp
#include<stdio.h>
void main()
{                                       //大佬,我改了之后,运算结果为什么全是8???
    int a[10],b[10],i,j,*p;
    p=a;
    printf("input:");
    for(i=0;i<10;i++)
    {
        scanf("%d",p++);
    }
    p=a;
    for(i=0;i<10;i++)
    {
    if(*(p+i)%2==0)
    {
        for(j=0;j<10;j++)
        b[j]=*(p+i);        
    }
    }  
    for(p=b;p<(b+10);p++)
    printf("%2d",*p);
}
2020-05-22 19:41
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
收藏
得分:3 
回复 5楼 吴佳俊
建议先读懂人家的代码,你再进行修改。
那你为什么要在if中再加一个for循环呢?

借用一下侯捷的话:勿在浮沙筑高台。
2020-05-22 19:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
    p=a;
    j = 0;
    for(i=0;i<10;i++)
    {
        if(*(p+i)%2==0)
        {
            // for(j=0;j<10;j++)
            b[j++]=*(p+i);      

        }
    }

    for(p=b;p</*(b+10)*/ b+j;p++)
2020-05-22 19:49
吴佳俊
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-4-5
收藏
得分:0 
回复 6楼 吕孟伟
我有点懵,没刷新,没看到大佬帮忙编的程序
2020-05-22 19:54
快速回复:通过键盘输入10个整数,将其保存在一维数组中,编程把该数组中所有为偶数 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012976 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved