| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 395 人关注过本帖
标题:请各位高手给看一下,这个函数怎样编写调用才正确!!高手们给个例子!!! ...
只看楼主 加入收藏
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
结帖率:92.31%
收藏
 问题点数:0 回复次数:9 
请各位高手给看一下,这个函数怎样编写调用才正确!!高手们给个例子!!!!!
请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
2011-04-21 08:03
xjzxylj
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:113
注 册:2011-4-18
收藏
得分:0 
int _tmain(int argc, _TCHAR* argv[])
{
    int a[100],i,j;
    for(i=1;i<=100;i++)
        if (((i%7==0)||(i%11==0)))
        {
            if((i%7==0)&&(i%11==0))
            {
                return 0;
            }
            else
            {
            a[i]=i;
            cout << a[i] << endl;
            }
        }
    return 0;
}
就这个程序就可以了,你看下吧。

淫一手湿,简单;难的是,淫一被子湿。(富有诗意,此处抄袭)
2011-04-21 08:24
xjzxylj
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:113
注 册:2011-4-18
收藏
得分:0 
如果范围要扩大的话,数组数目和for循环中的控制量变化一下就可以了,嘿嘿,现在只能写这样的,以后提高了可能更好点把。

淫一手湿,简单;难的是,淫一被子湿。(富有诗意,此处抄袭)
2011-04-21 08:26
xjzxylj
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:113
注 册:2011-4-18
收藏
得分:0 
对了,这个J变量我是原来的程序留着的,没用的东西,你用的时候删除吧。呵呵,没注意这点,把老程序删掉刚写的这个程序,多了个变量。

淫一手湿,简单;难的是,淫一被子湿。(富有诗意,此处抄袭)
2011-04-21 08:27
xjzxylj
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:113
注 册:2011-4-18
收藏
得分:0 
修改下,修改下,还有个小毛病;
int _tmain(int argc, _TCHAR* argv[])
{
    int a[100],i;
    for(i=1;i<=100;i++)
        if (((i%7==0)||(i%11==0)))
        {
            if((i%7==0)&&(i%11==0))
            {
              return 0;//这句话要去掉,否则会少一部分
            }
            else
            {
            a[i]=i;
            cout << a[i] << endl;
            }
        }
    return 0;
}

淫一手湿,简单;难的是,淫一被子湿。(富有诗意,此处抄袭)
2011-04-21 08:30
xjzxylj
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:113
注 册:2011-4-18
收藏
得分:0 
这个return0在的话程序会在70左右就终止了,后面的丢失了,你直接删除留空就可以了,if下的{}函数体留着不能删哦。

淫一手湿,简单;难的是,淫一被子湿。(富有诗意,此处抄袭)
2011-04-21 08:31
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
int fun(int a[])
{
    int count=0,i;
    for(i=1;i<100;i++)
        if( (i%7==0)+(i%11==0)==1 )a[count++]=i;
        return count;
}
int main(void)
{
    int n,i,a[30];

    n=fun(a);
   
    for(i=0;i<n;i++)
    {
        if(i%10==0)printf("\n");
        printf("%4d",a[i]);
    }   
    printf("\ncount=%d\n",n);   
    return 0;
}


[ 本帖最后由 kwxx 于 2011-4-21 08:44 编辑 ]
2011-04-21 08:32
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
程序代码:
int fun(int a[])  //说明一点,调用数组a前要用a[30]={0}初始化,用的时候用for(i=0;i<n;i++)
{
  int i,j=0,count=0;
  for(i=1;i<=100;i++)
  if(i%77!=0)
  {
     if(i%7==0||i%11==0)
     {
       a[j++]=i;
       count++;
     }
   }
   return count;
}

   唯实惟新 至诚致志
2011-04-21 08:32
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
下面的代码用了两种方法 楼主看一下

程序代码:
#include <stdio.h>

void fun1(int a[], int * n) {    // 通过指针改变实参的值,将个数放在实参中
    int i;
    for (i = 1, *n = 0; i < 100; i ++) {
        if ((i % 7 == 0) ^ (i % 11 == 0)) {    // 利用异或运算保证两个条件只有一个成立
            a[(*n)++] = i;
        }
    }    
}

int fun2(int a[]) {        // 通过函数返回值返回个数
    int i, n = 0;
    for (i = 1; i < 100; i ++) {
        if((i % 7 == 0) ^ (i % 11 == 0)) {
            a[n++] = i;
        }
    }
    return n;
}

int main() {
    int a[100], n;
    func1(a, n);
    // TODO:自己用循环显示一下数组的各个元素
    n = func2(a);
    // TODO:自己用循环显示一下数组的各个元素
    return 0;
}


修改了一下

[ 本帖最后由 voidx 于 2011-4-21 10:14 编辑 ]
2011-04-21 09:35
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
收藏
得分:0 
小弟在此感谢各位的
鼎力相助
谢谢啦
2011-04-21 12:59
快速回复:请各位高手给看一下,这个函数怎样编写调用才正确!!高手们给个例子! ...
数据加载中...
 
   



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

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