【程序设计】 --------------------------------------------------------- 题目:主函数 main()中一维数组cs为测试数据,均为3位整数。按 顺序首先找出其中的水仙花数,依次存入二维数组的第一列, 并把该数从低位到高位的数值依次放入同一行的第二至第四 列,再判断给定 3位数的逆序数是否为水仙花数,若是,则 把该数的逆序数、以及该逆序数低位到高位的数值依次插入 第一行的第一至第四列;若不是,则把该数追加到已有数据 的下一行的第一列,同时把该数低位到高位的数值依次放入 同一行的第二至第四列。 “水仙花数”是指一个三位数,各位数字的立方之和等于 该三位数自身。例如 371=3^3+7^3+1^3,因此371就是水仙 花数。 例如:数组 cs[]={258,370,820,407,371,947}, 二维数组 : 370 0 7 3 407 7 0 4 371 1 7 3 若插入值为 351,351的逆序数是水仙花数,则插入后: 153 3 5 1 370 0 7 3 407 7 0 4 371 1 7 3 若再插入 287,287的逆序数不是水仙花数,则插入后: 153 3 5 1 370 0 7 3 407 7 0 4 371 1 7 3 287 7 8 2 编写程序: 1.编写函数int sxh(inr cs[],int ar[][4],int m)实现以 下功能:从 cs数组的m个数中找出水仙花数,依次存入二维 数组 ar的第一列,并把该数从低位到高位的数值分别放入 同一行的第二至第四列,函数返回水仙花数的总个数。 2.编写函数int insert(int ar[][4],int v,int m),判断 v的逆序数是否为水仙花数,若是,则把该逆序数、以及该 逆序数低位到高位的数值依次插入到 m行的ar数组的第一行 的第一至第四列,若不是,则把该数追加到已有数据的下一行 的第一列,同时把该数低位到高位的数值依次放入同一行的 第二至第四列。 函数返回 v是否是水仙花数,是返回1,不是返回0。 --------------------------------------------------------- 注意:请勿改动主程序 main()中的任何语句。 ---------------------------------------------------------*/ #include
#include
#include
#include
#define N 10 #define M 4 int sxh(int cs[],int ar[][M],int m) { /**********Program**********/ /********** End **********/ } int insert(int ar[][M],int v,int m) { /**********Program**********/ /********** End **********/ } int main() { int cs[]={258,370,820,407,371,947},a[N][M]={0},ins[]={351,287}; int i,j,k,num; FILE *fp; if((fp=fopen("DATA.TXT","w"))==NULL) { printf("File open error\n"); exit(0); } num=sxh(cs,a,6); printf("二维数组\n"); for(i=0;i