| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1029 人关注过本帖
标题:求大神帮助 运行不了,自认没问题
只看楼主 加入收藏
qq2416014262
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-11-20
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
求大神帮助 运行不了,自认没问题
#include <stdio.h>
int main()
{
    int a[3][4]={{3,0,4,5},{6,2,1,7},{4,1,5,8}};
    int b[3][4]={{1,4,0,3},{2,5,1,6},{9,3,6,0}};
    int c[3][4];
    int i,j;
    printf("array a:\n");            //输出矩阵A
    for (i=0;i<3;i++)
    {
        for (j=0;i<4;j++)
        {
            printf("%5d",a[i][j]);
            c[i][j]=a[i][j]+b[i][j];    //求和后矩阵
        }
        printf("\n");
    }

    printf("\narray b:\n");
    for (i=0;i<3;i++)
    {
        for (j=0;j<4;j++)
        {
            printf("%5d",b[i][j]);
        }
        printf("\n");
    }

    printf("\narray C:\n");
    for (i=0;i<3;i++)
    {
        for (j=0;j<4;j++)
        {
            printf("%5d",c[i][j]);
        }
        printf("\n");
    }

    return 0;
}
搜索更多相关主题的帖子: include 
2016-11-20 21:20
qq2416014262
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-11-20
收藏
得分:0 
没事了弄错了
2016-11-20 21:25
qq2416014262
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-11-20
收藏
得分:0 
#include <stdio.h>
const int N=7;//定义评委数
int main()
{
    double score[N];
    double max,min,sum,aver;
    int i;
    printf("请输入%d位评委的给分:\n",N);
    for(i=0;i<N;i++)
        scanf("%f",&score[i]);
   
    max=min=sum=score[0];
    for(i=1;i<N;i++)
    {
        if(max<score[i])
            max=score[i];
        if(min<score[i])
            min=score[i];
        sum=sum+score[i];
    }
    sum=sum-max-min;
        aver=sum/(N-2);
    printf("\n去掉一个最高分: %f,去掉一个最低分:%f\n\n",max,min);
    printf("该选手的最后得分是: %.4f\n\n",aver);
    return 0;
}

这个怎么错了
2016-11-20 21:27
鸿蒙之灵
Rank: 4
来 自:异次元裂缝
等 级:贵宾
威 望:11
帖 子:126
专家分:244
注 册:2016-8-22
收藏
得分:10 

和以往的习惯一样,先说说问题在什么地方,你的问题应该是输出的问题,这个问题的主要原因是你在输入的时候,对于格式控制的不严谨:

printf的%f说明符的确既可以输出float型又可以输出double型。 根据"默认参数提升"规则(在printf这样的函数的可变参数列表中 ,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。参见问题15.2。

对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。(通过指针)向float存储和向double存储大不一样,因此,scanf区别%f和%lf


另外,你的这一段代码:
max=min=sum=score[0];
    for(i=1;i<N;i++)
    {
        if(max<score[i])
            max=score[i];
        if(min<score[i])
            min=score[i];
        sum=sum+score[i];
    }
你这样写逻辑上没有错,但是不利于代码的可读性,虽然你将数组中下标为零的元素提前赋值,在循环中直接从下标为1的元素开始,但是不利于程序的可读性,这一点在今后的代码生涯中需要注意一下

程序代码:

#include "stdafx.h"
#include <stdlib.h>
#include <string>
#include <iostream>
using namespace std;

#include <stdio.h>
const int N=7;//定义评委数
int main()
{
    double score[N];
    double max,min,sum,aver;
    printf("请输入%d位评委的给分:\n",N);
    for(int i=0;i<N;i++)
        scanf("%lf",&score[i]);
    
    max=score[0];
    min=score[0];
    sum=0;
    for(int i=0;i<N;i++)
    {
        if(max<score[i])
        {
            max=score[i];
        }
        if(min<score[i])
        {
            min=score[i];
        }
        sum=sum+score[i];
    }
    sum=sum-max-min;
        aver=sum/(N-2);
    printf("\n去掉一个最高分: %6f,去掉一个最低分:%6f\n\n",max,min);
    printf("该选手的最后得分是: %.4f\n\n",aver);
    system("pause");
    return 0;
}

对待编程,要像对待情人一样
2016-11-21 09:02
快速回复:求大神帮助 运行不了,自认没问题
数据加载中...
 
   



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

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