| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1900 人关注过本帖
标题:求助了。C语言的一个小题目
只看楼主 加入收藏
ggvvcc
Rank: 3Rank: 3
来 自:山东临沂
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2010-4-3
收藏
得分:0 
回复 8楼 寒风中的细雨
这个不错
2010-04-03 19:20
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:0 
回复 10楼 流云追风
他数组还没学呢,怎么会知道冒泡呢,呵呵
2010-04-03 23:19
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:0 
好好学吧,数组很简单的,学后你就觉得你的这个排序很容易的
2010-04-03 23:21
新手上路中
Rank: 4
等 级:业余侠客
帖 子:49
专家分:204
注 册:2010-3-26
收藏
得分:5 
我建议楼主还是学一下数组,它是同类型的数据的集合,很多场合下还是很有用的.也很好学.你的这个用一维的就够了.
下面的程序没有编译,你可以试一下,大体结构差不多就这样了.
#include"stdio.h"
void main(void)
{
      folat a[10];
      folat zd=0.0,zx=0.0;  //定义最大,最小值
      float sum;        //定义总和
      int i=0,j=0;          //定义循环变量
      for(;i<10;i++)
      {
           scanf("%f",&a[i]);       //连续地输入10个数给数组a
           sum+=a[i];               //求10个元素的总和
       }  
      for(i=0;i<9;i++)
            for(j=i+1;j<10;j++)       //通过冒泡法查找最大值与最小值
            {
                   if(a[i]<a[j])          //如果前面小于后面就交换,即从大到小排列这个数组
                   {
                        zd=a[i];          //这里暂时把变量zd当作交换媒介
                        a[i]=a[j];
                        a[j]=zd;
                   }
            }
       zd=a[0];        //第一个数是最大的
       zx=a[9];        //最后一个数是最小的
      printf("the maximum of array is %f\n",zd);     //输出最大值
      printf("the minimum of array is %f\n",zx);     //输出最小值
      printf("the mean of array is %f\n",sum/10);    //输出平均数
}
2010-04-04 08:54
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
收藏
得分:0 
回复 10楼 流云追风
找最值如果用到排序 那就太没效率了
2010-04-04 09:51
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
收藏
得分:0 
虽然楼主没学过数组 但是我在7楼发出的那段代码还是希望楼主留着 这对你以后学数组 控制输入数据个数 找最值 函数 简单数学算法 都很有帮助,这些都是C/C++中很容易的基础内容!!好好看看书就能理解的
2010-04-04 09:59
woodydongli
Rank: 2
等 级:论坛游民
帖 子:57
专家分:84
注 册:2010-4-4
收藏
得分:0 
#include <stdio.h>
/*
  ** input less than 10 integers, and find max,min,count the average
*/

int findMax(int a[],int);
int finMin(int a[],int);
int average(a[],int);
int main()
{
  int num[10],i;
  int max,min,average;
  char end;/*if input not end*/

  while((end=getchar())!='\n')/*\n means input end*/
  {
    num[i++]=end-'0';
  }
  min=findMin(num,i-1);
  max=findMax(num,i-1);
  average=average(num,i-1);

 return 0;
}

int findMax(int a[],int b)
{
  int max=0;
  for(b;b>0;--b)
    max=a[b]>max? a[b]:max;
return max;
}

int findMin(int a[],int b)
{
  int min=32767;
  for(b;b>0;--b)
    min=a[b]<min? a[b]:min;
 return min;
}
int average(a[],int b)
{
  int avg,total=0,i;
  i=b+1;/*total number of integer*/
  for(b;b>0;--b)
    total+=a[b];
  avg=total/i;/*取整了的平均*/
  return avg;
}
2010-04-04 10:23
qq1
Rank: 2
等 级:论坛游民
帖 子:92
专家分:22
注 册:2010-3-26
收藏
得分:0 
#include<stdio.h>
main()
{
    int i=1,x,aver,sum=0;
    long int max=-32769,min=32768;
    printf("输入所需10个数。\n");
    while(i<=10)
    {  
       printf("请输入第%d个数。",i);
       i++;
       scanf("%d",&x);
       sum=sum+x;
       if(max<x) max=x;
       if(min>x) min=x;
       aver=sum/10;
    }
    printf("max=%d,min=%d,aver=%d",max,min,aver);
}

用一个int只有16比特范围来求
2010-04-04 10:47
luochengwww
Rank: 2
等 级:论坛游民
帖 子:40
专家分:48
注 册:2010-3-31
收藏
得分:0 
双层for()
2010-04-04 11:11
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:0 
直接写了,没有调试。

程序代码:
#include <stdio.h>
int main()
{
    int sum=0,min=0,max=0,n;
    float ave;
    for(int i=0;i<10;i++)
    {
        scanf("%d",&n);
        if(min>n)min=n;
        if(max<n)max=n;
        sum+=n;       
    }
    ave=sum/10.0;
    printf("min=%d,max=%d,ave=%f",min,max,ave);
    return 0;
}
2010-04-04 11:49
快速回复:求助了。C语言的一个小题目
数据加载中...
 
   



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

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