| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6135 人关注过本帖
标题:一维数组给二维数组赋值的问题
只看楼主 加入收藏
sieben
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-9-29
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
一维数组给二维数组赋值的问题
俺是C语言的初学者,在用C语言编程中想将一个一维数组的非零值赋值到二维的对角线上,但是输出结果总是不对,希望各位大侠指点一下,十分感谢

void spmatrix(double sum[10])
{
int i,j,k;
double a[10][10];

for(i=0;i<10;i++)
{
    for(j=0;j<10;j++)
    {

        for(k=0;k<10;k++)
        {
         
         
             if((sum[k]!=0)&&(i==j))
             {
                a[i][j]=sum[k];
             }
    else
    a[i][j]=0;
         
        }
        
    }
}
}


void main()

{
    int i,j,k;
    double a[10][10],sum[10]={0,1,2,3,4,5,6,7,8,9};
   
    void spmatrix(sum);

     for(i=0;i<10;i++)
     for(j=0;j<10;j++)
     printf("a[%d][%d]:%d\n",i,j,a[i][j]);


    while (1);

}
搜索更多相关主题的帖子: 二维 大盘 C语言 
2011-09-29 14:50
sieben
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-9-29
收藏
得分:0 
对了,俺的输出结果截图是这样的
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-09-29 15:14
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:10 
程序代码:
#include<stdio.h>

void spmatrix(int (*a)[10],int sum[])
{
    int i,j;

    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        {

            if(i==j)
                a[i][j]=sum[i];
            else
                a[i][j]=0;
        }
    }
}


void main()

{
     int i,j;
     int a[10][10],sum[10]={0,1,2,3,4,5,6,7,8,9};
   
     spmatrix(a,sum);

     for(i=0;i<10;i++)
     {
        for(j=0;j<10;j++)
            printf("%d  ",a[i][j]);
        printf("\n");
     }
}
2011-09-29 15:51
sieben
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-9-29
收藏
得分:0 
3楼的大侠,你的代码输出结果是
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-09-29 16:04
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
你有没有搞错

图片附件: 游客没有浏览图片的权限,请 登录注册
2011-09-29 16:19
sieben
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-9-29
收藏
得分:0 
恩,要是用整型,就是这个结果,但是用double,就不是了,这是为啥呢?希望大侠指教一下?
2011-09-29 16:25
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
double 型的要用lf输出。
2011-09-29 16:28
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
程序代码:
#include<stdio.h>

void spmatrix(double (*a)[10],double sum[])
{
    int i,j;

    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        {

            if(i==j)
                a[i][j]=sum[i];
            else
                a[i][j]=0;
        }
    }
}


void main()

{
     int i,j;
     double a[10][10],sum[10]={0,1,2,3,4,5,6,7,8,9};
   
     spmatrix(a,sum);

     for(i=0;i<10;i++)
     {
        for(j=0;j<10;j++)
            printf("%.0lf  ",a[i][j]);
        printf("\n");
     }
}
2011-09-29 16:29
sieben
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-9-29
收藏
得分:0 
啊啊啊啊啊啊,是的,谢谢大侠了
2011-09-29 16:31
sieben
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-9-29
收藏
得分:0 
大侠,已经给你分了,谢谢大侠
2011-09-29 16:32
快速回复:一维数组给二维数组赋值的问题
数据加载中...
 
   



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

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