用C语言编写如下两个关于数组的程序。如何解答?

用C语言编写如下两个关于数组的程序。如何解答?
程序一: 已知 float a[3][4];
使输出得到如下图形(注意特征: float a[3][4] 中所有的元素“全部”且不多不少的刚刚好的全用完了。):
a00 a01 a02 a03
a10 a11 a12 a13
a20 a21 a22 a23

程序二: 已知 float a[2][3][4];
使输出得到类似程序一那样的图形(特别注意特征:float a[2][3][4] 中所有的元素“全部”且不多不少的刚刚好的全用完了。 )
注意:要求程序二 是“类似”程序一的那样的图形。但“不是”完全一致。根据实际情况,得到“类似”程序一那样 得到 float a[2][3][4] 这个三位数组 的排列情况。

1)

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    float a[3][4]={{1.1,2.2,3.3,4.4},{5.5,6.6,7.7,8.8},{9.9,10.1,11.11,12.12}};
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<4;printf("%10f",a[i][j++]));
        printf("\n");
    }
    return 0;
}

2)

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    float a[2][3][4]={{{0.1,0.2,0.3,0.4},{0.5,0.6,0.7,0.8},{0.9,0.01,0.11,0.12}},
{{1.1,2.2,3.3,4.4},{5.5,6.6,7.7,8.8},{9.9,10.1,11.11,12.12}}};
    int i,j,k;
    for(i=0;i<2;i++){
        for(j=0;j<3;j++){
            for(k=0;k<4;printf("%10f",a[i][j][k++]));
            printf("\n");
        }
        printf("\n\n");
    }
    return 0;
}

追问

非常谢谢您的精彩解答。由于我刚接触数组,运行了您的程序后,我才发现我的题目有问题。现在把题目改为

一,编写程序实现与如下的图形“完全一致”的程序

二,编写程序,实现 三位数组a[2][3][4];“类似”上述图片的程序。

三,附加:我知道二维数组  a[3][4];是三行四列的意思。那三位数组a[2][3][4]; 这个怎么理解呢?

亟待您的精彩解答。谢谢。

追答

没有看出来你原先的题哪里有什么问题。第一题就是那样,第二题可以改变一下在屏幕上的排列方式:

int main(void){
    float a[2][3][4]={{{0.1,0.2,0.3,0.4},{0.5,0.6,0.7,0.8},{0.9,0.01,0.11,0.12}},
{{1.1,2.2,3.3,4.4},{5.5,6.6,7.7,8.8},{9.9,10.1,11.11,12.12}}};
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<4;j++)
            printf("%10f",a[0][i][j]);
        printf("    ");
        for(j=0;j<4;j++)
            printf("%10f",a[1][i][j]);
        printf("\n");
    }
    return 0;
}

a[2][3][4]就是有两个3x4的二维数组。

追问

您所给的程序,好像只是数字的排列方式呢。是否可以改成 “字母a+两位的下标 ”的形式输出呢?就是例如 a00 这样 “字母a+两位的下标 ”的形式呢?两道题的程序都改成 “字母a+两位的下标 ”的形式输出吧,好吗?谢谢。
前提为C语言的“数组”那章节的“数组”。就是a[3][4]这样的格式的。是否可以呢?就是说 “数组”且“图片中的‘完全相同’的样式”。是否能实现呢?

追答

什么都能实现,但你定义为float型就不能实现。你的题一开始就说“已知float a[3][4];,这样的定义就只能是浮点数字,不可以有字母。如果必须定义成float a[3][4];的形式,那么打印成a00...这样的图案也不是不可以,但那就不是元素值了,看代码:

(1)

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    float a[3][4];
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<4;printf("%c%d%d ",'a',i,j++));
        printf("\n");
    }
    return 0;
}

(2)

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    float a[2][3][4]={0};
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<4;printf("%s%d%d ","a0",i,j++));
        printf("\t");
        for(j=0;j<4;printf("%s%d%d ","a1",i,j++));
        printf("\n");
    }
    return 0;
}

实在没弄明白定义float数组,却输出这些牛头不对马嘴的东西有何意义?

追问

现在把float 给删除了。
前提为C语言的“数组”那章节的“数组”。就是a[3][4]这样的格式的。至于怎么定义 a[3][4] “根据您的实际情况定义即可”。是否可以呢?
就是说必须用到数组 a[3][4]这样的 “数组”且“图片中的‘完全相同’的样式”。是否能实现呢?怎么实现?至于数组的类型根据您的实际情况来定于。把原题中的题目 float 给删除了。谢谢。

追答

我不知道“前提为C语言的‘数组’那章节的‘数组’”是什么样子,但数组就是数组,哪本书上讲的都一样。我就没有明白你要表达什么意思,这不都按你的要求打出来了,怎么又不对?下面搞一个字符串数组你看看是不是你的意思:

(1)

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char *a[3][4]={{"a00","a01","a02","a03"},{"a10","a11","a12","a13"},{"a20","a21","a22","a23"}};
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<4;printf("%s ",a[i][j++]));
        printf("\n");
    }
    return 0;
}

(2)

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char *a[2][3][4]={{{"a000","a001","a002","a003"},
                   {"a010","a011","a012","a013"},
                   {"a020","a021","a022","a023"}},
                  {{"a100","a101","a102","a103"},
                   {"a110","a111","a112","a113"},
                   {"a120","a121","a122","a123"}}};
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<4;printf("%s ",a[0][i][j++]));
        printf("\t");
        for(j=0;j<4;printf("%s ",a[1][i][j++]));
        printf("\n");
    }
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答