| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 346 人关注过本帖
标题:求大家帮我看看错在哪儿
只看楼主 加入收藏
royalqu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-3-1
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
求大家帮我看看错在哪儿
#include <stdlib.h>
#include <stdio.h>
int main()
{
  int a[100];
  int i;
  int zd;
  for(i=0;i<10;i++)
    {
      a[i]=rand();
    }
  for (i=0;i<10;i++)
    {
      zd=max(a[i],a[i++]);
    }
  printf("%d\n",zd);
}
int max(int a,int b)
{
  int c;
  c=a>b?a:b;
  return c;
}
我想随机产生是个数,并输出最大的。请大家帮忙看看。谢谢
2011-03-01 20:22
『点点滴滴』
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:168
专家分:1035
注 册:2007-7-9
收藏
得分:4 
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int max(int a,int b)
{
    int c;
    c=a>b?a:b;
    return c;
}

int main()
{
    srand(time(NULL));  // 不加的话每次产生的随机数一样
    int a[100];
    int i;
    int zd;
    for(i=0;i<10;i++)
    {
        a[i]=rand();
    }
    for (i=0;i<10;i++)
    {
        zd=max(a[i],a[i++]);
    }
    printf("%d\n",zd);
    return 0 ;
}
2011-03-01 20:33
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:4 
#include <stdlib.h>
#include <stdio.h>
int main()
{ int max(int,int);
  int a[100];
  int i;
  int zd;
  for(i=0;i<10;i++)
    {
      a[i]=rand();
    }
  for (i=0;i<10;i++)
    {
      zd=max(a[i],a[i++]);
    }
  printf("%d\n",zd);
  return 0;
}
int max(int a,int b)//要先声明;
{
  int c;
  c=a>b?a:b;
  return c;
}
2011-03-01 20:33
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:4 
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
  int max(int a,int b); //声明
  srand(time(0)); //初始化随机函数rand()
  int a[100]={0};  //一定要初始化为0,原因不解释
  int i;
  int zd=0;
  for(i=0;i<10;i++)
    {
      a[i]=rand();
    }
  for (i=0;i<10;i++)
    {
      zd=max(a[i],a[i+1]); //这里是最关键的,写成i++的话那i就自加两次,结果自然是不对的
      a[i+1]=zd;  //要求10个中的最大的一个,像你那样是找一个最大的扔一个,结果一定是第9,第10中的一个数,结果就不对
    }
  printf("%d\n",zd);
}
int max(int a,int b)
{
  int c;
  c=a>b?a:b;
  return c;
}


[ 本帖最后由 qq1023569223 于 2011-3-1 22:22 编辑 ]

   唯实惟新 至诚致志
2011-03-01 22:15
wolonga123
Rank: 2
等 级:论坛游民
帖 子:25
专家分:35
注 册:2010-9-16
收藏
得分:4 
4楼的方法不错,其它的好像是比较的相邻两个数中的最大数啊,.....但感觉没必要那么麻烦啊
#include <stdio.h>
main()
{
int i,max,*p,a[100];
for(i=0;i<10;i++)
    {
      a[i]=rand();
    }
p=a;
for(p=a;p<a+10;p++)
{
if(p<p+1)
p=p+1;
max=*p;
}pintf("\n最大数为%d",max)
}
2011-03-04 10:37
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:4 
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
    int a[100];
    int i;
    int zd;

    srand(time(NULL));  // 这样写可以在不支持C99的C编译器中也可以编译。
    //另外,对于楼主要说的是:rand()函数其实是一个伪随机函数,也就是说,它虽然可以产生随机数,但是如果并执行上一步的话,它每次产生的随机数都是一样的。楼主可以自行验证。
    for(i = 0; i < 10; i++)
        a[i] = rand();

    for (zd = i = 0; i < 10; i++)
        zd = a[i] > a[zd] ? zd : i;
//建议楼主以后在找最大数时,不要只找“最大数”,最好找最大数的下标。这样的思路以后在排序等等算法中要实用得多。
    printf("%d\n", a[zd]);

    return 0 ;
}

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-03-04 10:58
快速回复:求大家帮我看看错在哪儿
数据加载中...
 
   



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

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