C语言的问题! 输入一个数字,之后用*号 组成这个数字输出!

可以看得懂吧? 就是说输入一个数字,之后输出时用*号拼成的! 那个例子输入数字:8
之后*号拼成 8 的样子输出!
棒子国的C语言 有点恶心! 期末作业帮帮忙~~!
数字 6 (array)
int six[15] = { 1, 0, 0,1, 0, 0,1, 1, 1,1, 0, 1,1, 1, 1}
最好使用类似的数组! thank u!


#include <stdio.h>

int zero[15] =  { 1,1,1,
                  1,0,1,
                  1,0,1,
                  1,0,1,
                  1,1,1  };

int one[15] =   { 0,1,0,
                  0,1,0,
                  0,1,0,
                  0,1,0,
                  0,1,0  };

int two[15] =   { 1,1,1,
                  0,0,1,
                  1,1,1,
                  1,0,0,
                  1,1,1  };

int three[15] = { 1,1,1,
                  0,0,1,
                  1,1,1,
                  0,0,1,
                  1,1,1  };

int four[15] =  { 1,0,1,
                  1,0,1,
                  1,1,1,
                  0,0,1,
                  0,0,1  };

int five[15] =  { 1,1,1,
                  1,0,0,
                  1,1,1,
                  0,0,1,
                  1,1,1  };

int six[15] =   { 1,1,1,
                  1,0,0,
                  1,1,1,
                  1,0,1,
                  1,1,1  };

int seven[15] = { 1,1,1,
                  0,0,1,
                  0,0,1,
                  0,0,1,
                  0,0,1  };

int eight[15] = { 1,1,1,
                  1,0,1,
                  1,1,1,
                  1,0,1,
                  1,1,1  };

int nine[15] =  { 1,1,1,
                  1,0,1,
                  1,1,1,
                  0,0,1,
                  0,0,1  };


void print_number(int *num)
{
    int i, j;
    for(i=0; i<5; i++)
    {
        for(j=0; j<3; j++)
        {
            if(num[i*3+j] == 1)     // 1 打印'#'
                printf("#");
            else
                printf(" ");        // 0 打印' '空格
        }
        printf("\n");
     }
}

int main(void)
{
    int *array[10]={zero,one,two,three,four,five,six,seven,eight,nine}; // 指针数组,存放0-9
    int input;

    int i = 10;

    while(i--)       //输入十次  自己可以检验
    {
        printf("please input 0-9: ");
        fflush(NULL);

        scanf("%d", &input);
        if(input<0||input>9)
        {
            printf("error!\n");
            return -1;
        }

        printf("\n");
        print_number(array[input]);
        printf("\n");
    }

    return 0;
}

追问

选择的时候能不能用 switch case 形式啊!

追答
/* 改一下 main */
int main(void)
{
    int input;
    int i = 10;

    while(i--)       //输入十次  自己可以检验
    {
        printf("please input 0-9: ");
        fflush(NULL);

        scanf("%d", &input);
        if(input<0||input>9)
        {
            printf("error!\n");
            return -1;
        }

        printf("\n");
        switch(input)
        {
            case 0: print_number(zero);  break;
            case 1: print_number(one);   break;
            case 2: print_number(two);   break;
            case 3: print_number(three); break;
            case 4: print_number(four);  break;
            case 5: print_number(five);  break;
            case 6: print_number(six);   break;
            case 7: print_number(seven); break;
            case 8: print_number(eight); break;
            case 9: print_number(nine);  break;
        }
        printf("\n");
    }

    return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-28
switch(0)
case:
printf("***\n* *\n* *\n* *\n***\n");
break;
switch(1)
case:
printf(" *\n *\n *\n *\n *\n");
break;
剩下的自己写把 就这样写下去本回答被网友采纳
第2个回答  2013-05-28
#include <stdio.h>

void print(int a[15])
{
        int i, j;
        for (i = 0; i < 5; i++) {
                for (j = 0; j < 3; j++)
                        printf("%c", a[i * 3 + j] ? '#' : ' ');
                putchar('\n');
        }   
        putchar('\n');
}

int main(void)
{
        int d;
        int a[10][15] = { 
                {1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1},/* 0 */
                {0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0},/* 1 */
                {1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1},/* 2 */
                {1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1},/* 3 */
                {1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1},/* 4 */
                {1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1},/* 5 */
                {1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1},/* 6 */
                {1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1},/* 7 */
                {1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1},/* 8 */
                {1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1},/* 9 */
        };  

        scanf("%d", &d);
                print(a[d]);
        return 0;
}

 还可以:

#include <stdio.h>

void print(const char a[20])
{
        int i;
        for (i = 0; i < 20; i++)
                printf("%c", a[i]);
        putchar('\n');
}

int main(void)
{
        int d;
        const char a[10][21] = { 
                "###\n# #\n# #\n# #\n###\n",
                " # \n # \n # \n # \n # \n",
                "###\n  #\n###\n#  \n###\n",
                "###\n  #\n###\n  #\n###\n",
                "# #\n# #\n###\n  #\n  #\n",
                "###\n#  \n###\n  #\n###\n",
                "###\n#  \n###\n# #\n###\n",
                "###\n  #\n  #\n  #\n  #\n",
                "###\n# #\n###\n# #\n###\n",
                "###\n# #\n###\n  #\n###\n",
        };  

        scanf("%d", &d);
                print(a[d]);
        return 0;
}

第3个回答  2013-05-28
你6都写出来了,其它的类似呀,
然后根据输入的数据,选择数组就OK了!
原理就是,写一个输出函数,将数组输入,值为1就画一个#,0就空格,满3个一换行就OK了!追问

其实不是我写的,我不会啊! 那是老师给的思路,因为在韩国他讲的东西我听的不是很懂,会的不多!
能把具体的源码打出来嘛?

第4个回答  2013-05-28
int six[i,5]={i,i++}.............................................追问

没有源码嘛?

第5个回答  2013-05-28
#include <stdio.h>
char num[10][5][3]=
{
    {
        {'#','#','#'},
        {'#',' ','#'},
        {'#',' ','#'},
        {'#',' ','#'},
        {'#','#','#'}
    },
    {
        {' ','#',' '},
        {' ','#',' '},
        {' ','#',' '},
        {' ','#',' '},
        {' ','#',' '}
    },
    {
        {'#','#','#'},
        {' ',' ','#'},
        {'#','#','#'},
        {'#',' ',' '},
        {'#','#','#'}
    },
    {
        {'#','#','#'},
        {' ',' ','#'},
        {'#','#','#'},
        {' ',' ','#'},
        {'#','#','#'}
    },
    {
        {'#',' ','#'},
        {'#',' ','#'},
        {'#','#','#'},
        {' ',' ','#'},
        {' ',' ','#'}
    },
    {
        {'#','#','#'},
        {'#',' ',' '},
        {'#','#','#'},
        {' ',' ','#'},
        {'#','#','#'}
    },
    {
        {'#',' ',' '},
        {'#',' ',' '},
        {'#','#','#'},
        {'#',' ','#'},
        {'#','#','#'}
    },
    {
        {'#','#','#'},
        {' ',' ','#'},
        {' ',' ','#'},
        {' ',' ','#'},
        {' ',' ','#'}
    },
    {
        {'#','#','#'},
        {'#',' ','#'},
        {'#','#','#'},
        {'#',' ','#'},
        {'#','#','#'}
    },
    {
        {'#','#','#'},
        {'#',' ','#'},
        {'#','#','#'},
        {' ',' ','#'},
        {' ',' ','#'}
    }
};
int main()
{
    char c;
    int n;
    int i,j;
    c=getch();
    while(c>='0'&&c<='9')
    {
        n=c-'0';
        for(i=0;i<5;i++)
        {
            for(j=0;j<3;j++)
                printf("%c", num[n][i][j]);
            printf("\n");
        }
        printf("\n");
        c=getch();
    }
}

第6个回答  2013-05-28
可以把数字事先画好,放到数组里面,然后输入数字,分割位数,对应下标显示(这是思路,如果要源码,私信我)追问

对啊 就是把对应的数字放到数组里面,像上面的数字6一样!
具体的源码能打出来嘛?

追答#include <stdio.h>
char a[10][6][4]={ {"###","# #","# #","# #","###"},{" # "," # "," # "," # "," # "},{"###","  #","###","#  ","###"},{"###","  #","###","  #","###"},{"# #","# #","###","  #","  #"},{"###","#  ","###","  #","###"},{"###","#  ","###","# #","###"},{"###","  #","  #","  #","  #"},{"###","# #","###","# #","###"},{"###","# #","###","  #","  #"}};
int ws[10];
int split(int n){
int i=0;
ws[0]=0;
while(n){
ws[i]=n%10;
n/=10;
i++;

}
return i;
}
int main(){
int n,i,len,j;
scanf("%d",&n);
len=split(n);
for(j=0;j<5;j++){
for(i=len-1;i>=0;i--){
printf("%s ",a[ws[i]][j]);
}
printf("\n");
}


}

记得比好评哦,亲

追问

int six[15] = { 1, 0, 0,
1, 0, 0,
1, 1, 1,
1, 0, 1,
1, 1, 1}最好用这种形式的! 之后选择用switch case 谢谢!

C语言的问题! 输入一个数字,之后用*号 组成这个数字输出!
include <stdio.h>int zero[15] = { 1,1,1, 1,0,1, 1,0,1, 1,0,1, 1,1,1 };int one[15] = { 0,1,0, 0,1,0, 0,1,0, 0,1,0, 0,1,0 };int two[15] = { 1

C语言 编写一个程序,用户输入一个整数n后打印出由* '号组成的n行n列的...
int n,i,j;printf("请输入数字:");scanf("d%",&n);for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("* ");} printf("\\n");} 插进去就ok了

C语言 输入数字 输出**
首先,楼主你说的问题是不存在的哦。我使用的是VC6.0,测试结果是不会进入死循环。但是,你的程序有个小小的问题,你的数组没有进行初始化。也没有输入来对数组进行赋值。如果是要输入赋值可以使用 for(i=0;i<10;i++)scanf("%d",&a{i});也可以直接初始化的时候赋值。算法是正确的,打印*...

怎么用C语言输入一个数字,然后执行后面的语句
1、首先打开C-Free5.0,然后一个空白的C语言页面保存为switch.c文件,继续输入一般的C语言的基础格式。2、C语言的输入语句,首先定义一个整型数值,然后从外面写入这个值。#include <stdio.h>main(){int a;printf("请输入一个1-5之间的数值: ");scanf("%d",&a);}这里的scanf() 就是从外...

c语言编程 一个数字一个数字输入,整理后出!追加分数!
将数字以字符串的形式输入就可以处理了,代码如下:include<stdio.h> include<string.h> include<windows.h> int main(){ char s[10];scanf("%s",s);for(int i=0;i<strlen(s);i++)printf("%c",s[i]);printf("\\n");system("pause");return 0;} ...

输入一串字符,以?号结束,输出其中小写字母个数和数字个数C语言程序
include <stdio.h>void main(){int i=0,m=0,n=0;char str[1000];while(str[i]!='?'){scanf("%c",&str[i]);if(str[i]>='a'&&str[i]<='z') m++;if(str[i]>='0'&&str[i]<='9') n++;}printf("小写字母个数:%d,数字个数:%d",m,n);} 运行示例截图:...

C语言程序:输入一个字符,如果是数字字符,把它转换成相对应的数字并输出...
include <stdio.h> int main(){ char() c;while(1){ printf("input:");c = getchar()();getchar()();if(c == 'N')\/\/如果输入大写的N 就退出了 这个你自己随便设置 break;if(c >= '0'&& c <= '9')c = c - 48;printf("%d\\n",c);} system("pause");return 0;} ...

c语言: 下面的这段代码,输入一个数字->按回车,然后用printf输出这个数字...
那个换行是你自己发出的,你输入4以后是不是要回车程序才会继续呢。如果不想他换行就别用scanf,用getchar

...号结束,输出其中小写字母个数和数字个数C语言程序
include <stdio.h>void main(){int i=0,m=0,n=0;char str[1000];while(str[i]!='?'){scanf("%c",&str[i]);if(str[i]>='a'&&str[i]<='z') m++;if(str[i]>='0'&&str[i]<='9') n++;}printf("小写字母个数:%d,数字个数:%d",m,n);} 运行示例截图:

将一个字符串中的数字改成“*”,在输出结果
include<stdio.h> int main(){char s[200],*p;gets(s);for(p=s;*p;p++)if(*p>='0'&&*p<='9')*p='*';puts(s);return 0;}

相似回答
大家正在搜