求助!编一个简单的小程序

sophyss1 2014-10-31 07:57:39
我不是搞编程的但是最近需要一个小程序不过我不会。。所以向大家求助,要求如下:
我一定会说的特别没重点。。一个三维网格体,每个网格编上号(1,1,1)(1,1,2)到(m,n,p)。想实现的功能是:我输入两个网格的坐标,就可以输出很多行数据,每一行有7列:其中3列是其中一个网格的坐标,另三列是与另一个网格相邻的网格的坐标,最后一列是数字,可以都定为25,然后每行最后有一个/。比如输入的是(1 1 1)和(10 1 4),那得到的文本是1 1 1 10 1 3 25/或者2 1 1 10 1 4 25/ 还有很多行。。两个输入的网格周围有多少相邻的网格,就有多少行。
据说这是个很简单的程序,但是架不住我不会。。如果有可以写的就多谢啦!!!
...全文
199 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sophyss1 2014-11-06
  • 打赏
  • 举报
回复
#include<stdio.h> void main() { int x,y,z; scanf("%d %d %d",&x,&y,&z); int a1,a2,a3,a1m,a1p,a2m,a2p,a3m,a3p; int b1,b2,b3,b1m,b1p,b2m,b2p,b3m,b3p; scanf("%d %d %d",&a1,&a2,&a3); b1=1; b2=2; b3=3; while(b1<=x&&b2<=y&&b3<=z) { a1m=a1-1; a1p=a1+1; a2m=a2-1; a2p=a2+1; a3m=a3-1; a3p=a3+1; b1m=b1-1; b1p=b1+1; b2m=b2-1; b2p=b2+1; b3m=b3-1; b3p=b3+1; if(b3!=1) printf("%d %d %d %d %d %d 25/\n",a1,a2,a3,b1,b2,b3m); if(b3!=z) printf("%d %d %d %d %d %d 25/\n",a1,a2,a3,b1,b2,b3p); if(b2!=1) printf("%d %d %d %d %d %d 25/\n",a1,a2,a3,b1,b2m,b3); if(b2!=y) printf("%d %d %d %d %d %d 25/\n",a1,a2,a3,b1,b2p,b3); if(b1!=1) printf("%d %d %d %d %d %d 25/\n",a1,a2,a3,b1m,b2,b3); if(b1!=x) printf("%d %d %d %d %d %d 25/\n",a1,a2,a3,b1p,b2,b3); if(a3!=1) printf("%d %d %d %d %d %d 25/\n",a1,a2,a3m,b1,b2,b3); if(a3!=z) printf("%d %d %d %d %d %d 25/\n",a1,a2,a3p,b1,b2,b3); if(a2!=1) printf("%d %d %d %d %d %d 25/\n",a1,a2m,a3,b1,b2,b3); if(a2!=y) printf("%d %d %d %d %d %d 25/\n",a1,a2p,a3,b1,b2,b3); if(a1!=1) printf("%d %d %d %d %d %d 25/\n",a1m,a2,a3,b1,b2,b3); if(a1!=x) printf("%d %d %d %d %d %d 25/\n",a1p,a2,a3,b1,b2,b3); scanf("%d h%d %d",&a1,&a2,&a3); scanf("%d %d %d",&b1,&b2,&b3); } }
sophyss1 2014-11-06
  • 打赏
  • 举报
回复
其实是一个很简单的小程序我编出来了,,就是我太懒了orz
勤奋的小游侠 2014-11-03
  • 打赏
  • 举报
回复
看不懂楼主想做什么
赵4老师 2014-11-03
  • 打赏
  • 举报
回复
仅供参考
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
FILE *f;
int i,n,line,st;
int n1,n2,n3;
int b1,b2,b3;
int e1,e2,e3;
int w1,w2,w3;
int v1,v2,v3;
char ln[256];
char fmt[256];
char fmd[6];
char tmp[256];
char *s1,*s2,*s3,*s4;
char L,R,D;
void main(int argc,char *argv[]) {
    if (argc<2) {
    PMT:
        printf("%s filename.ext [ParenthesesChar] [DelimiterChar]\nParenthesesChar is '(' default or '[' or '{'\nDelimiterChar is ',' default",argv[0]);
        return;
    }
    if (argc==2) {
        L='(';R=')';D=',';
    } else {
        switch (argv[2][0]) {
            case '(':L='(';R=')';break;
            case '[':L='[';R=']';break;
            case '{':L='{';R='}';break;
            default:goto PMT;
        }
        D=',';
        if (argc>=4) D=argv[3][0];
    }
    sprintf(fmd,"%%d%c%%d",D);
    if ((f=fopen(argv[1],"rt"))==NULL) {
        printf("Can not open %s",argv[1]);
        return;
    }
    line=0;
    while (1) {
        fgets(ln,255,f);
        if (feof(f)) break;//
        line++;
        n=0;st=0;
        for (i=0;i<(int)strlen(ln);i++) {
            switch (st) {
            case 0:if (ln[i]==L) st=1;break;
            case 1:if (ln[i]==D) st=2;break;
            case 2:if (ln[i]==R) {st=0;n++;} break;
            }
        }
        switch (n) {
            case 0:
                printf("%s",ln);
            break;
            case 1:
                s1=strchr(ln,L);
                s2=strchr(s1,R);
                if (s2==NULL) {
                    cprintf("\a\a\a missing %c in line %d",R,line);
                    fclose(f);
                    return;
                }
                s1[0]=0;
                s1++;
                s2++;
                v1=sscanf(s1,fmd,&b1,&e1);
                if (v1==2) {
                    w1=1+(int)log10((double)e1);
                    sprintf(fmt,"%%s%%0%1dd%%s",w1);
                    for (n1=b1;n1<=e1;n1++) {
                        printf(fmt,ln,n1,s2);
                    }
                } else if (s1[1]==D) {
                    b1=s1[0];
                    e1=s1[2];
                    for (n1=b1;n1<=e1;n1++) {
                        printf("%s%c%s",ln,n1,s2);
                    }
                } else {
                    printf("%s",ln);
                }
            break;
            case 2:
                s1=strchr(ln,L);
                s2=strchr(s1,R);
                if (s2==NULL) {
                    cprintf("\a\a\a missing %c in line %d",R,line);
                    fclose(f);
                    return;
                }
                s1[0]=0;
                s1++;
                s2++;
                v1=sscanf(s1,fmd,&b1,&e1);
                if (v1==2) {
                    w1=1+(int)log10((double)e1);
                } else {
                    b1=s1[0];
                    e1=s1[2];
                }

                s1=strchr(s2,L);
                s3=strchr(s1,R);
                if (s3==NULL) {
                    cprintf("\a\a\a missing %c in line %d",R,line);
                    fclose(f);
                    return;
                }
                s1[0]=0;
                s1++;
                s3++;
                v2=sscanf(s1,fmd,&b2,&e2);
                if (v2==2) {
                    w2=1+(int)log10((double)e2);
                } else {
                    b2=s1[0];
                    e2=s1[2];
                }

                strcpy(fmt,"%s");
                if (v1==2) sprintf(tmp,"%%0%1dd",w1);
                else strcpy(tmp,"%c");
                strcat(fmt,tmp);
                strcat(fmt,"%s");
                if (v2==2) sprintf(tmp,"%%0%1dd",w2);
                else strcpy(tmp,"%c");
                strcat(fmt,tmp);
                strcat(fmt,"%s");
                for (n1=b1;n1<=e1;n1++) {
                    for (n2=b2;n2<=e2;n2++) {
                        printf(fmt,ln,n1,s2,n2,s3);
                    }
                }
            break;
            case 3:
                s1=strchr(ln,L);
                s2=strchr(s1,R);
                if (s2==NULL) {
                    cprintf("\a\a\a missing %c in line %d",R,line);
                    fclose(f);
                    return;
                }
                s1[0]=0;
                s1++;
                s2++;
                v1=sscanf(s1,fmd,&b1,&e1);
                if (v1==2) {
                    w1=1+(int)log10((double)e1);
                } else {
                    b1=s1[0];
                    e1=s1[2];
                }

                s1=strchr(s2,L);
                s3=strchr(s1,R);
                if (s3==NULL) {
                    cprintf("\a\a\a missing %c in line %d",R,line);
                    fclose(f);
                    return;
                }
                s1[0]=0;
                s1++;
                s3++;
                v2=sscanf(s1,fmd,&b2,&e2);
                if (v2==2) {
                    w2=1+(int)log10((double)e2);
                } else {
                    b2=s1[0];
                    e2=s1[2];
                }

                s1=strchr(s3,L);
                s4=strchr(s1,R);
                if (s4==NULL) {
                    cprintf("\a\a\a missing %c in line %d",R,line);
                    fclose(f);
                    return;
                }
                s1[0]=0;
                s1++;
                s4++;
                v3=sscanf(s1,fmd,&b3,&e3);
                if (v3==2) {
                    w3=1+(int)log10((double)e3);
                } else {
                    b3=s1[0];
                    e3=s1[2];
                }

                sprintf(fmt,"%%s%%0%1dd%%s%%0%1dd%%s%%0%1dd%%s",w1,w2,w3);
                strcpy(fmt,"%s");
                if (v1==2) sprintf(tmp,"%%0%1dd",w1);
                else strcpy(tmp,"%c");
                strcat(fmt,tmp);
                strcat(fmt,"%s");
                if (v2==2) sprintf(tmp,"%%0%1dd",w2);
                else strcpy(tmp,"%c");
                strcat(fmt,tmp);
                strcat(fmt,"%s");
                if (v3==2) sprintf(tmp,"%%0%1dd",w3);
                else strcpy(tmp,"%c");
                strcat(fmt,tmp);
                strcat(fmt,"%s");

                for (n1=b1;n1<=e1;n1++) {
                    for (n2=b2;n2<=e2;n2++) {
                        for (n3=b3;n3<=e3;n3++) {
                            printf(fmt,ln,n1,s2,n2,s3,n3,s4);
                        }

                    }
                }
            break;
            default:
                cprintf("\a\a\a > 3 repeat in line %d",line);
                fclose(f);
                return;
        }
    }
    fclose(f);
}
zhouxiaofeng1021 2014-11-03
  • 打赏
  • 举报
回复
就没看懂你说什么,怎么帮你

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧