| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 581 人关注过本帖
标题:急!!一个关于函数调用的问题,因为是新手总是解决不了请高手帮忙啊
只看楼主 加入收藏
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
结帖率:92.31%
收藏
已结贴  问题点数:36 回复次数:10 
急!!一个关于函数调用的问题,因为是新手总是解决不了请高手帮忙啊
程序要求:
1.编写函数fun,其功能是:生成某整型数组的前N(20)项。该数组前两个数据分别为1和2,以后每个奇数下标(数组的下标从0开始)的项是前两项的和,偶数下标的项为前两项差的绝对值。生成的N个数存在形参a指向的数组中。

函数fun的类型及其形参定义为void fun(int *a)

2.编写main函数,其功能是:调用 fun函数,按一行4个输出N个数。
程序代码:
#include<stdio.h>
void fun(int *a)
{
  int s[21],i,*t;
  *t=s[21];
  a=t;
  s[0]=1;
  s[1]=2;
  for (i=2;i<=20;i++)
  {
    if(i%2==0)
        s[i]=s[i-2]-s[i-1]>0?s[i]:-s[i];
    else s[i]=a[i-2]+s[i-1];
    printf("%d",s[i]);
  }
}
main()
{
    int *a,i;
    fun(a);
    for(i=0;i<21;i++)
    {
        if(i%4==0)
            printf("\n");
        printf("%d",s[i]);
    }
}
请高手指点啊…………急啊!!!!
搜索更多相关主题的帖子: 绝对值 
2011-04-17 09:35
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:7 
printf("%d",s[i]); //s在哪

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-17 10:12
wog
Rank: 2
来 自:南昌
等 级:论坛游民
帖 子:33
专家分:31
注 册:2010-10-2
收藏
得分:7 
程序代码:
#include <stdio.h>
void fun(int *a)
{
        int i;
        a[0]=1;
        a[1]=2; 
        for (i=2;i<=20;i++)
        {
                if(i%2==0)
                        a[i]=abs(a[0]-a[1]);
                else    
                        a[i]=a[i-2]+a[i-1];
        printf("%4d",a[i]);
  }
}
main()
{
    int a[20],i;
    fun(a);
    for(i=0;i<21;i++)
    {
        if(i%4==0)
            printf("\n");
        printf("%4d",a[i]);
    }
        return 0;
}                              
2011-04-17 10:22
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
收藏
得分:0 
2楼谢谢啦
不好意思啊 
我都不知道怎么编辑才能将程序编好
3楼谢谢啦
看来我还得努力啊
2011-04-17 11:33
shinan77
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:87
专家分:188
注 册:2010-9-24
收藏
得分:7 
程序代码:
#include<stdio.h>
#include<math.h>
#define N 20
void fun(int *arry)
{
    int i;
    arry[0]=1;
    arry[1]=2;
    for(i=2;i<N;i++)
    {
        if(0==i%2)
            arry[i]=fabs(arry[i-2]-arry[i-1]);
        else
            arry[i]=arry[i-2]+arry[i-1];
    }
}
void main()
{
    int arry[N];
    fun(arry);
    for(int i=0;i<N;i++)
    {
        printf("%d ",arry[i]);
        if(0==(i+1)%4)
            printf("\n");
    }
}

--------将学到的东西为我所用,这才是学习的目的 --------
2011-04-17 11:38
阿愚
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2011-4-12
收藏
得分:7 
请问一下 这个abs 是什么意思  a[i]=abs(a[0]-a[1]);
2011-04-17 11:47
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:7 
abs是求绝对值啊

                                         
===========深入<----------------->浅出============
2011-04-17 11:50
阿愚
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2011-4-12
收藏
得分:0 
#include<stdio.h>
#include<math.h>
void fun(int *a)
{
    int i;
  a[0]=1;
  a[1]=2;
  for (i=2;i<=20;i++)
  {
    if(i%2==0)
    a[i]=abs(a[i-2]-a[i-1]);
    else a[i]=a[i-2]+a[i-1];
    printf("%d ",a[i]);
  }
}
main()
{
    int i;
    int a[21];
    fun(a);
    for(i=0;i<21;i++)
    {
        if(i%4==0)
            printf("\n");
        printf("%d ",a[i]);
    }
}

你看看这个 我也是刚开始学习 一起努力吧 哈哈
2011-04-17 11:58
阿愚
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2011-4-12
收藏
得分:0 
fabs 好像也是呀
2011-04-17 11:59
阿愚
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2011-4-12
收藏
得分:0 
回复 7楼 laoyang103
我好像认识你
2011-04-17 12:00
快速回复:急!!一个关于函数调用的问题,因为是新手总是解决不了请高手帮忙啊
数据加载中...
 
   



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

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