| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:帮忙给改改错。
只看楼主 加入收藏
positiveboy
Rank: 2
等 级:论坛游民
帖 子:17
专家分:11
注 册:2009-5-14
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
帮忙给改改错。
题目要求:编写函数,对具有10个整数的数组进行如下操作:从第N个元素开始直到最后一个元素,依次向前移动一个位置。输出移动后的结果。

我写的程序如下,
void boy(int k)
{int a[10]={1,2,3,4,5,6,7,8,9,10},*p,n=10-2;
for(p=&a[n];n>k-1;n--)
{printf("%d",p);}
}
main()
{int k;
printf("please input a number:");
scanf("%d",&k);
boy(k);
}

输出结果是-46-46-46```我还没仔细查错。先弄上来同大家讨论讨论。谢谢合作。
搜索更多相关主题的帖子: 改错 
2009-10-13 17:21
sen_lin
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:114
专家分:436
注 册:2009-3-24
收藏
得分:3 
你这个程序好像没有实现你说的那种功能啊,你为什么要用指针呢,printf("%d",p);中输出的是指针p所指单元的地址。
#include "stdio.h"
 
void boy(int k)
{
    int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10;
    for(;k<n;k++)
    {
        a[k-1]=a[k];     
    }
 
    for(i=0;i<9;i++)
        printf("%d\t",a[i]);
}
main()
{
    int k;
printf("please input a number:");
scanf("%d",&k);
boy(k);
}
2009-10-13 18:23
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:3 
void boy(int k)
{int a[10]={1,2,3,4,5,6,7,8,9,10};
int i;
for(i=k-1;i<10;i++)
   a[i-1]=a[i];
for(i=0;i<9;i++)
printf("%3d",a[i]);
}
main()
{int k;
printf("please input a number:");
scanf("%d",&k);
boy(k);
}
从第k个数开始,依次覆盖前面的数。
2009-10-13 18:36
positiveboy
Rank: 2
等 级:论坛游民
帖 子:17
专家分:11
注 册:2009-5-14
收藏
得分:0 
总之,一句话,谢谢!
我还是得考虑如何用指针。
2009-10-13 22:22
yutianshangu
Rank: 2
等 级:论坛游民
帖 子:25
专家分:73
注 册:2008-10-12
收藏
得分:3 
#include "stdio.h"  
 
void boy(int k)  
{  
    int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10,*p;
    p=a;
    for(;k<n;k++)  
    {  
        *(a+k-1)=*(a+k);      
    }  
 
    for(;p<a+9;p++)  
        printf("%d\t",*p);  
}  
main()  
{  
    int k;  
printf("please input a number:");  
scanf("%d",&k);  
boy(k);  
}  
2009-10-13 22:57
快速回复:帮忙给改改错。
数据加载中...
 
   



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

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