| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:【提问】求程序代码
只看楼主 加入收藏
重新分区
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2010-4-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
【提问】求程序代码
刚刚学习C语言,最近想写一个C语言代码,以实现:输入任意个整数,让程序实现
1、输出已经输入的整数的个数
2、求出所输入整数的平均值
3、求出这些整数中的最值
整个程序以菜单的方式展现,由于水平有限,希望前辈能够尽量多写注释,感激不敬!
搜索更多相关主题的帖子: 提问 代码 
2010-05-12 22:35
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:4 
呵呵!

愿用余生致力编程
2010-05-13 09:41
yc2575757
Rank: 7Rank: 7Rank: 7
来 自:北京
等 级:黑侠
威 望:1
帖 子:113
专家分:522
注 册:2010-5-7
收藏
得分:4 
#include<stdio.h>
void main()
{
    int a[100] = {0};
    int input_num = 0;
    int b = 0;
    int i = 0;
    int j = 0;
    int choice = 0;
    double average = 0;
    int sum = 0;
    int mid = 0;
    printf("请输入任意个整数(输入一个不为整数的字符结束输入):\n");
    while (scanf("%d",&b) == 1)        //这里是输入任意的整数
    {
        a[i] = b;
        i++;
    }
    input_num = i ;
    printf("**********************************************************\n");
    printf("1.输出已经输入的整数的个数\n");
    printf("2、求出所输入整数的平均值\n");
    printf("3、求出这些整数中的最值\n");
    printf("**********************************************************\n");
    printf("您的选择为:");
    getchar();        //接收结束字符,不然会不能输入choice
    scanf("%d",&choice);
    while (choice)
    {
        switch(choice)
        {
            case 1:
                printf("已经输入的整数的个数为:%d \n",input_num);
                printf("还要继续么?(继续请选择1-3,不继续请输入0):");
                scanf("%d",&choice);
                break;
            case 2:
                for (i = 0 ; i< input_num;i++)
                {
                    sum+=a[i];
                }
                average = sum/input_num;   //求平均值
                printf("所输入整数的平均值:%f \n",average);
                printf("还要继续么?(继续请选择1-3,不继续请输入0):");
                scanf("%d",&choice);
                break;
            case 3:
                for (i = 0;i<input_num ;i++)        //由小到大排列
                {
                    for (j=i+1;j<input_num ;j++)
                    {
                        if (a[i]>a[j])
                        {
                            mid = a[i];
                            a[i] = a[j];
                            a[j] = mid;
                        }
                    }
                }
                printf("这些整数中的最小值为:%d \n",a[0]);
                printf("这些整数中的最大值为:%d \n",a[input_num - 1]);
                printf("还要继续么?(继续请选择1-3,不继续请输入0):");
                scanf("%d",&choice);
                break;
            default:
                break;
    }
    }
    printf("Have a nice day!\n");
}
希望lz满意~~
2010-05-13 10:33
张君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:113
注 册:2010-5-13
收藏
得分:4 
  
回三楼  
while (scanf("%d",&b) == 1)        //这里是输入任意的整数
输入的b是1吗?看不明白这句话

做自己就好,保持自己,记得微笑
2010-05-13 10:58
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
scanf是有返回值的呀,但是我们使用scanf的时候通常不会去关心它的返回值的呀,你可以通过调试程序来看一下scanf的返回值!
我觉得三楼写的好像有点问题呀,应该是:while (scanf("%d",&b) !=-1) 或者是:while (scanf("%d",&b) != EOF)

愿用余生致力编程
2010-05-13 12:25
chichu
Rank: 2
来 自:安徽阜阳
等 级:论坛游民
帖 子:71
专家分:89
注 册:2010-4-14
收藏
得分:4 
回复 4楼 张君
是判断输入的b是不是1
是就执行while语句

有了目标才有动力!!!
2010-05-13 12:41
张君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:113
注 册:2010-5-13
收藏
得分:0 
回六楼
我知道如果b是1,就执行语句。。可是这个为什么确定b的值1呢??a[i]=b,那么a[i]的值不久全是1了吗?

做自己就好,保持自己,记得微笑
2010-05-13 18:39
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:4 
我也写一个。供楼主参考。请各位多提意见。
程序代码:
#include<stdio.h>
#include<stdlib.h>

int seek_max(int p[],int n)//求最大值,并返回
{
    int max;
    max=p[0];
    for(int i=1;i<n;i++)
        if(p[i]>max)
            max=p[i];
    return max;
}

int seek_min(int p[],int n)//求最小值,并返回
{
    int min;
    min=p[0];
    for(int i=1;i<n;i++)
        if(p[i]<min)
            min=p[i];
    return min;
}

float average(int p[],int n)//求平均值,并返回
{
    float sum=0;
    for(int i=0;i<n;i++)
    {
        sum=sum+p[i];
    }
    return sum/n;
}

int main(int argc, char* argv[])
{
    int i=0,m;
    int *p;
    int n=10;
    p=(int*)calloc(n,sizeof(int));
    printf("请输入整数(输入0则结束输入):\n");
    for(int j=0;;)
    {
        scanf("%d",&m);
        if(0==m)
            break;
        else
        {
            p[j++]=m;
            i++;
        }

        if(i==10)
        {
            p=(int *)realloc(p,(n+10)*sizeof(int));
            i=0;
        }
       
    }

    char c;
    while(1)
    {
    printf("****************************\n");
    printf("1.输出已经输入的整数的个数\n2.求出所有输入的整数的平均值\n3.求出这些整数中的最值\n4.退出\n");
    printf("****************************\n");
    printf("请输入相应的数字:");

    getchar();
    scanf("%c",&c);
    switch(c)
    {
    case '1':printf("你一共输入了%d个整数。\n",j);break;
    case '2':printf("你输入的所有数的平均值是%f\n",average(p,j));break;
    case '3':printf("你输入的最大值是%d ,最小值是%d\n",seek_max(p,j),seek_min(p,j));break;
    case '4':return 1;
    default:printf("输入无效!\n");
    }

    }
    return 0;
}


 

南国利剑
2010-05-13 20:02
快速回复:【提问】求程序代码
数据加载中...
 
   



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

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