c语言问题 通过键盘将10个整数输入到一维数组中,并把该数组中所有偶数放另外一个数组中

#include<stdio.h>
void main()
{
int num[10],i,dnum[10],di;
int *p;
p=num;
printf("please input your ten numbers:");
for(i=0;i<=9;i++)
{
scanf("%d",p+i);
}
di=0;
for(i=0;i<=9;i++)
{
if((*(p+i)%2)==0)
dnum[di]=*(p+i);
di++;
}
p=dnum;
printf("your oushu geshu is%d ge\n",di);
for(i=0;i<di;i++)
{
printf("%d,",dnum[i]);
}
}为何输出结果中,2,4,6,8,10中间会有一长串地址码?
输入数组初始值为1-10的十个数字

1、首先定义一个字符串:$str = 'apple';其次定义一个数组:$arr = array('apple', 'orange', 'strawberry')。

2、加入函数:in_array(),判断$arr中,是否存在$str。如果存在则在屏幕上打印出:$str的值;如果不存在,则在屏幕上打印:找不到。

3、将编写的PHP文件保存,并在浏览器运行,观察效果,成功返回了$str的值,表明$str存在于$arr数组中。

4、修改$str的值,参考代码如下:$str=pear。

5、保存修改之后的PHP文件,再次在浏览器运行文件,此次,因为数组中不存在$str的值,所以屏幕上打印出:找不到。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-26

错误在这个地方:

if((*(p+i)%2)==0)        // if语句没有大括号
    dnum[di]=*(p+i);
    di++;

应改为

if((*(p+i)%2)==0)        // 不然di++无论满足if条件与否都增1
{    dnum[di]=*(p+i);
     di++;
}

谢谢,望采纳!

追问

谢谢了

本回答被提问者采纳
相似回答