| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2413 人关注过本帖
标题:感谢所有帮助过我的人 继续上传我的C语言作业请大家批评
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
 问题点数:0 回复次数:10 
感谢所有帮助过我的人 继续上传我的C语言作业请大家批评
从键盘读入5个成绩到一个数组中,求其中的最大值,最小值和平均成绩。在屏幕上显示输入成绩的提示信息,用键盘输入一个成绩,接着提示输入下一个,直到结束。
图片附件: 游客没有浏览图片的权限,请 登录注册


程序代码:

#include<stdio.h>
#include<math.h>

#define N 5

#ifndef FSMLALL
#define FSMLALL 0.000001
#endif

int main(void)
{
    int i = 0;
    float scores[N] = {0.0};
    float max = 0.0;
    float min = 3e38;
    float average = 0.0;
   
    printf("Please input %d score(s):\n",N);
   
    for (i=0; i<N; i++)
    {
        printf("Please input No.%d score(s):",i+1);
        scanf("%f",(scores+i));
        if ((scores[i]-max)>FSMLALL)    /* scores[i] > max */
        {
            max = scores[i];
        }
       
        if ((min-scores[i])>FSMLALL)    /* min < scores[i] */
        {
            min = scores[i];
        }

        average += scores[i];
    }
   
    average /= N;
    /* sample may be wrong. */
    printf("Max is %f,Min is %f,Average is %f",max,min,average);
    return 0;

}





找出数组中的最小数和次小数,并把最小数和a[0]中的数对调、次小数和a[1]中的数对调,其余数据位置不变。
例如,程序运行时若输入:2 4 6 11 3 9 7 0 5 8,则输出:0 2 6 11 3 9 7 4 5 8。

程序代码:

#include<stdio.h>
#define N 10

int main(void)
{
    int a[N] = {0};
    int i = 0;
    int i_min = 0;
   
    for (i=0; i<N; i++)
    {
        scanf("%d",a+i);    
        /* 编写程序,实现功能 */
        if (a[i] < a[i_min])
        {
            i_min = i;
        }
    }
   
    if (0 != i_min)
    {
        /* a trick to exchange 2 int */
        a[0] ^= a[i_min];
        a[i_min] ^= a[0];
        a[0] ^= a[i_min];
    }
   
    /* if there are 2 min nums a[0] and a[1] will be equal */
    i_min = 1;
    for (i=1; i<N; i++)
    {   
        if (a[i] < a[i_min])
        {
            i_min = i;
        }
    }
   
    if (1 != i_min)
    {
        a[1] ^= a[i_min];
        a[i_min] ^= a[1];
        a[1] ^= a[i_min];
    }
   
    for (i=0; i<N; i++)
    {
        printf("%d ",a[i]);
    }
   
    printf("\n");
   
    return 0;

}




编写程序从键盘上输入一个字符串和一个字符,统计所指定字符的个数。
例如:从键盘输入字符串为"abaaAAbcaaaca",指定字符为'a',则在屏幕上输出结果是7。

程序代码:

#include<stdio.h>
#include<string.h>
#define N 200

int main(void)
{
    char a[N] = {'\0'};
    char b = '\0';
    int num = 0;
    int i = 0;
   
    printf("Please input a string,max length is %d:",N);
    gets(a);
    printf("Please enter a character:");
    b=getchar();
   
    /* 编写程序,实现功能 */
    for (; i<N&&a[i]!='0'; i++)
    {
        if (a[i] == b)
        {
            num++;
        }
    }
   
    printf("The result is %d\n",num);
   
    return 0;

}





某个单位要传递机密数据,数据是10位以内的整数(从键盘输入)。在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用该和除以10的余数代替该数字。在屏幕上显示加密后的数字。
例如:输入数据 327895123,
显示结果为  : 872340678。

程序代码:

#include<stdio.h>
#define N 10

int main(void)
{
    char a[N] = {'\0'};
    int i = 0;
   
    scanf("%s",a);
    for (; i<10&&a[i]!='\0'; i++)
    {
        if (a[i]<'0'||a[i]>'9')
        {
            printf("\nInput may be wrong.\n");
            return -1;
        }
        /* 
        a[i] -= '0';
        a[i] += 5;
        a[i] %= 10;
        a[i] += '0';
        */
        putchar((((a[i]-'0')+5)%10)+'0');
    }
   
    return 0;

}


搜索更多相关主题的帖子: 最大值 C语言 
2011-04-21 08:43
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
程序代码:
// 第二题,让我狠狠汗了一把
#include <stdio.h>

#define N 10

int main() {
    int a[N] = {0}, i, j, i_min;
    for (i = 0; i < N; i++) {
        scanf(" %d", &a[i]);
    }
    for (i = 0; i < 2; i++) {
        for (i_min = j = i; j < N; j++) {
            if (a[j] < a[i_min]) {
                i_min = j;
            }
        }
        j = a[i];
        a[i] = a[i_min];
        a[i_min] = j;
    }
    for (i = 0; i < N; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");
    return 0;
}

// 第三题
b = getchar(); // 不好使,改成scanf()
scanf(" %c", &b);


 for (; i<N&&a[i]!='0'; i++) // a[i] != '\0' 少了转义字符 '\'

// 第四题
putchar((((a[i]-'0')+5)%10)+'0'); // 也可以像下面那样写
putchar(a[i] + (a[i] >= '5' ? -5 : 5));


[ 本帖最后由 voidx 于 2011-4-21 22:03 编辑 ]
2011-04-21 10:25
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用voidx在2011-4-21 10:25:55的发言:

// 第二题,让我狠狠汗了一把
#include  
 
#define N 10
 
int main() {
    int a[N] = {0}, i, j, i_min;
    for (i = 0; i < N; i++) {
        scanf(" %d", &a);
    }
    for (i = 0; i < 2; i++) {
        for (i_min = j = i; j < N; j++) {
            if (a[j] < a) {
                i_min = j;
            }
        }
        j = a;
        a = a;
        a = j;
    }
    for (i = 0; i < N; i++) {
        printf("%d ", a);
    }
    printf("\n");
    return 0;
}
 
// 第三题
b = getchar(); // 不好使,改成scanf()
scanf(" %c", &b);
 
 for (; i
// 第四题
putchar((((a-'0')+5)%10)+'0'); // 也可以像下面那样写
putchar(a + (a >= '5' ? -5 : 5));

多谢板砖 不过后两个改的还明白 第二题的改法不大明白了。。
2011-04-22 17:41
hnuhsg1226
Rank: 9Rank: 9Rank: 9
来 自:中国
等 级:蜘蛛侠
威 望:2
帖 子:314
专家分:1314
注 册:2011-3-27
收藏
得分:0 
顶个贴,留个名

我的地盘
2011-04-22 17:43
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
不错  不错

                                         
===========深入<----------------->浅出============
2011-04-22 17:55
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
回复 2楼 voidx
第二题代码虽然行数少了,但是可读性降低了,个人觉得不能牺牲可读性

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-04-22 18:07
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
回复 楼主 zklhp
我怎么觉得第一题的max值比min值小呢?

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-04-22 18:08
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
回复 5楼 laoyang103
又看到老杨了,打个招呼

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-04-22 18:09
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用waterstar在2011-4-22 18:08:37的发言:

我怎么觉得第一题的max值比min值小呢?

所以我加了一句

/* sample may be wrong. */

呵呵

还是不明白汗的原因。。
2011-04-22 19:06
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
楼主,第二题完全可以用循环来做的,但是你却把同样的代码写了两遍来分别求出 最小值 和 次最小值
所以我汗了

[ 本帖最后由 voidx 于 2011-4-22 21:15 编辑 ]
2011-04-22 21:12
快速回复:感谢所有帮助过我的人 继续上传我的C语言作业请大家批评
数据加载中...
 
   



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

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