| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 632 人关注过本帖
标题:关于n个学生m门成绩的另外一个问题
取消只看楼主 加入收藏
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:8 
关于n个学生m门成绩的另外一个问题
#include<stdio.h>
#define N 5
#define M 3

int main()
{
    int i,j;
    int a[N][M];
    printf("请输入学生成绩:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }

    int k;
    int max;
    for(j=0;j<M;j++)
    {
        max=a[0][j];
        for(i=0;i<N;i++)
        {
            if(a[i][j]>=max)
                max=a[i][j];k=i;
            else
                max=max;
        }
        printf("a[%d][%d]=%d\n",k,j,max);
    }
    return 0;
}

小弟都晕了,怎么编译总是提示if与else没匹配,崩溃了,之前好好的,伤心了。
搜索更多相关主题的帖子: max include 
2012-08-05 23:30
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
回复 2楼 TonyDeng
Tony,都无语了,今天想看下代码的,一运行,发现IF与else不能匹配了,总是提示出错,不晓得怎么回事...
2012-08-05 23:37
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
回复 4楼 TonyDeng
max=a[0][j];
        for(i=0;i<N;i++)
        {
            if(a[i][j]>=max)
            max=a[i][j];
                k=i;
            else
            max=max;
写成这样还是不行啊
2012-08-05 23:41
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
明白了,明白了,跟谭浩强学的
2012-08-05 23:44
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
回复 8楼 TonyDeng
tony,我将数组改成double型后,相应的输入输出全改成double型,发现输出数据错误了,怎么办,最大值不能输出,对应的i值也不能输出了
2012-08-05 23:58
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
#include<stdio.h>
#define N 5
#define M 3

int main()
{
    int i,j;
    double a[N][M]; //数据类型改成double型
    printf("请输入学生成绩:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            scanf("%f",&a[i][j]); //输入数据类型改成double型
        }
    }

    int k;
    double max; //max double型
    for(j=0;j<M;j++)
    {
        max=a[0][j];
        for(i=0;i<N;i++)
        {
            if(a[i][j]>=max)
            {
                max=a[i][j];
                k=i;
            }
            else
                max=max;
        }
        printf("max=a[%d][%d]=%f\n",k,j,max);   //输出数据改成double型
    }
    return 0;
}
2012-08-05 23:58
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
已解决,%f应该改成%lf,还是不熟练啊,粗心啊,自打,罚面壁一晚
2012-08-06 00:05
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
回复 11楼 TonyDeng
for(j=0;j<M;j++)
    {
        for(i=0;i<N;i++)
        {
            if(a[i][j]<6)
            {
                printf("a[%d][0]=%lf,a[%d][1]=%lf,a[%d][2]=%lf\n",i,a[i][0],i,a[i][1],i,a[i][2]);
            }
        }
    }
将成绩<6的学生所有成绩输出,找不到好得方式,只能列举出来,tony?
我的想法是这样的,找到小于6的那门课,记住i值,再将j从0到M输出,
但是代码如何让视线呢...
2012-08-06 00:57
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
改写成这样貌似可以..。for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            if(a[i][j]<6)
            {
                for(j=0;j<M;j++)
                    printf("a[%d][%d]=%lf",i,j,a[i][j]);
            }
        }
        printf("\n");
    }
2012-08-06 01:02
快速回复:关于n个学生m门成绩的另外一个问题
数据加载中...
 
   



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

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