| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2882 人关注过本帖
标题:关于指针数组的c语言程序题,请大家帮帮忙看看哪里不对,谢谢!
只看楼主 加入收藏
FATALIZM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-6-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:38 
关于指针数组的c语言程序题,请大家帮帮忙看看哪里不对,谢谢!
输入数组判断偶数的个数

#include<stdio.h>
main()
{int a[20],b=0,*p=a,i,c;
printf("请输入数字个数:");
scanf("%d",&c);
printf("请输入%d个数字:",c);
for(i=0;i<c;i++)
scanf("%d",p+i);
for(p=a;p<&a[9];p++)
{if(*p%2==0)
b++;
}

printf("偶数个数是%d",b)    ;
fflush(stdin);
getchar();

   
   
}
搜索更多相关主题的帖子: c语言程序 
2016-07-06 21:39
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
for(p=a;p<&a[9];p++)改成for(i=0;i<c;i++,p++),
2016-07-06 21:48
FATALIZM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-6-28
收藏
得分:0 
回复 2楼 linlulu001
恩, 运行成功了,谢谢!!有点疑问,为啥开始那个不行,我看书上一个一个输出字符串的时候就可以这么写,那为啥一个字符一个字符比较判断的时候就不可以呢?
2016-07-06 21:59
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:5 
for(p=a;p<&a[c];p++)改成这样也行。你输入数组的个数不一定是9个数,我改成那样方便你观察数组a[]的个数,但你直接忽视了

[此贴子已经被作者于2016-7-6 22:11编辑过]

2016-07-06 22:10
FATALIZM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-6-28
收藏
得分:0 
回复 4楼 linlulu001
对对对,我直接搬过来了没有改,忘记了,太粗心了,嘿嘿麻烦你了
2016-07-06 22:17
FATALIZM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-6-28
收藏
得分:0 
#include <stdio.h>

insert(int*p,int d)
{
int a[6]={1,2,4,6,12,14};
int i;
int *p,d;
p=&a;
for(*p==a;p<=&a[6];p++)
{if(d>=*p)
for(i=0;i<7;i++)
 {
 *p+2=*P+1;
}
*p+1=d;
}
}
main()
{
int *p;
int d;
printf("请输入一个数");
scanf("%d",&d);
insert(*p,d);
printf("%d",A);
}

在既定的数组中按从小到大的顺序插入一个数字,要插入的数字是自己输入的,编写该函数并且调用,怎么做啊?我编的无法运行,这里不太会,大家帮忙看看吧,谢谢了

[此贴子已经被作者于2016-7-7 08:44编辑过]

2016-07-07 08:41
FATALIZM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-6-28
收藏
得分:0 
我自己改了改,但是还是不对,大家帮忙看看吧,拜托拜托了
#include <stdio.h>

void insert(int *p,int d)
{
int a[6]={1,2,4,6,12,14};
int i,j;
*p=a[6];
for(i=0;i<6;i++,p++)
{
     if (*p[i]<=d)
         {
            for(j=6;j>i+1;j--)
            {
             *p[j]=*p[j-1];
            }
         }
     P[i+1]=d;
}
printf("%d",a[6]);
}
main()
{
int *p;
int d;
printf("请输入一个数");
scanf("%d",&d);
insert(*p,d);
printf("%d",a);

}
2016-07-07 10:26
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 7楼 FATALIZM
什么不对?是不能编译还是输出结果不对?
2016-07-07 10:43
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
你原来的p有一个地方是大写的P,另外函数参数传递也有问题
你试试这个,应该可以编译了,你试试看,你这个是要把一个数插入到原有数组? 如果是这个作用,那么insert()还是有问题的;
不明白你要做什么,所有insert函数没调整算法,没必要用指针啊,不知道你要做什么?
程序代码:
#include <stdio.h>

void insert(int a[],int d)
{
    
    int i,j;
    int *p=a;
    for(i=0;i<6;i++)
    {
        if(p[i]<=d)
        {
            for(j=6;j>i+1;j--)
            {
             p[j]=p[j-1];
            }
        }
         p[i+1]=d;
    }
//    printf("%d",a[6]);
}
int main()
{
    int i;
    int a[6]={1,2,4,6,12,14};
//  for(i=0;i<6;i++)
//      printf("%d\t",a[i]);
    int d;
    printf("\ninput a number:"); 
    scanf("%d",&d);
    insert(a,d);
    for(i=0;i<6;i++)
        printf("%d\t",a[i]);
    return 0;
}


[此贴子已经被作者于2016-7-7 11:02编辑过]

2016-07-07 10:48
FATALIZM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-6-28
收藏
得分:0 
回复 9楼 wanglianyi1
结果不太对,从1开始往后都变成了输入的那个数,但是还是谢谢能帮忙,这个题目是将一个数字插入到已经知道的从小到大排好顺序的数组中,并且插进去还是从小到大排列的
2016-07-07 12:03
快速回复:关于指针数组的c语言程序题,请大家帮帮忙看看哪里不对,谢谢!
数据加载中...
 
   



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

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