| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2241 人关注过本帖
标题:%3d与%3c一样么,打出来的效果怎么不一样
只看楼主 加入收藏
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:7 
%3d与%3c一样么,打出来的效果怎么不一样
printf("%3d",b[i][j]);
         char  d=' ';//这是一个空格,
        printf("%3c",d);//我想让他们都是打印出相同的效果都是占3个长度
    比如:for(i=0;i<n;i++)
            printf(“%3d”,a[i]);
          char  d=' ';
         for(i=0;i<n;i++)
            printf("%3c",d);
          for(i=0;i<n;i++)
            printf(“%3d”,a[i]);
 预期结果:
1 2 3 2
       1 2 3 2
但是结果却是
1 2 3 2
    1 2 3 2(这是怎么回事)或者解决办法是什么?要用循环!
搜索更多相关主题的帖子: 效果 
2013-05-16 22:34
火雨流星泪
Rank: 2
等 级:论坛游民
帖 子:65
专家分:78
注 册:2013-5-12
收藏
得分:7 
你那个预期结果应该是
1234
    1234
执行结果应该是
1234
  1234

2013-05-16 22:40
火雨流星泪
Rank: 2
等 级:论坛游民
帖 子:65
专家分:78
注 册:2013-5-12
收藏
得分:0 
错了,
1232
    1234

1232
  1232
2013-05-16 22:40
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:7 
程序代码:
#include<stdio.h>
#define n 4
int main(void)
{
    int a[n]={1,2,3,2}, j, i;
    char d=' ';
    for(i=0;i<n;i++)
        printf("%3d",a[i]);
    printf("\n");
    for(i=0;i<3;i++)
        printf("%3c",d);
    for(i=0;i<n;i++)
        printf("%3d",a[i]);
    return 0;
}
[local]1[/local]

看看这个行不行!

QQ图片20130516224800.jpg (16.67 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-16 22:48
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
收藏
得分:0 
回复 3楼 火雨流星泪
1要在2的后面,而且那个3不是随便改的,用n,告诉你我的程序
#include<stdio.h>
main()
{
    int a[20][20],b[20][20],c[20][20]={0},i,j,n,m;
    printf("enter n*m\n");
    scanf("%d%d",&n,&m);
    printf("enter %d*%d矩阵1元素\n",n,m);
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            scanf("%d",&a[i][j]);//输入第一个矩阵
    printf("enter %d*%d矩阵2元素\n",m,n);
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            scanf("%d",&b[i][j]);////输入第二个矩阵
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {  
            for(int k=0;k<m;k++)
                c[i][j]=c[i][j]+a[i][k]*b[k][j];//结果矩阵
        }
        printf("矩阵的乘积是:\n");
    for(i=0;i<m;i++)//这是打印出相乘的效果
    {  if(i<n)
        for(j=0;j<m;j++)
            printf("%4d",a[i][j]);
        if((i==n/2)&&(i<n))
            printf("   *  ");
        else
            printf("      ");
        for(j=0;j<n;j++)
            printf("%4d",b[i][j]);
        if((i==n/2)&&(i<n))
            printf("  =   ");
        else     
             printf("      ");
        if(i<n)
        for(j=0;j<n;j++)
            printf("%5d",c[i][j]);
            printf("\n");
            if(i==n-1)
            { char d=' ';
                for(int p=0;p<m;p++)
                printf("%3c",d);
                printf("   ");
//有问题
                }
    }


}
2013-05-16 23:00
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
收藏
得分:0 
#include<stdio.h>
main()
{
    int a[20][20],b[20][20],c[20][20]={0},i,j,n,m;
    printf("enter n*m\n");
    scanf("%d%d",&n,&m);
    printf("enter %d*%d矩阵1元素\n",n,m);
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            scanf("%d",&a[i][j]);//输入第一个矩阵
    printf("enter %d*%d矩阵2元素\n",m,n);
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            scanf("%d",&b[i][j]);////输入第二个矩阵
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {  
            for(int k=0;k<m;k++)
                c[i][j]=c[i][j]+a[i][k]*b[k][j];//结果矩阵
        }
        printf("矩阵的乘积是:\n");
    for(i=0;i<m;i++)//这是打印出相乘的效果
    {  if(i<n)
        for(j=0;j<m;j++)
            printf("%4d",a[i][j]);
        if((i==n/2)&&(i<n))
            printf("   *  ");
        else
            printf("      ");
        for(j=0;j<n;j++)
            printf("%4d",b[i][j]);
        if((i==n/2)&&(i<n))
            printf("  =   ");
        else     
             printf("      ");
        if(i<n)
        for(j=0;j<n;j++)
            printf("%5d",c[i][j]);
            printf("\n");
            if(i==n-1)
            { char d=' ';
                for(int p=0;p<m;p++)
                printf("%3c",d);
                printf("   ");
                }
    }


}
这是我想说的程序,可以测试一下,输入2 3再3 4就发现问题了
2013-05-16 23:02
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
收藏
得分:0 
回复 4楼 我叫沃恩
#include<stdio.h>
main()
{
    int a[20][20],b[20][20],c[20][20]={0},i,j,n,m;
    printf("enter n*m\n");
    scanf("%d%d",&n,&m);
    printf("enter %d*%d矩阵1元素\n",n,m);
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            scanf("%d",&a[i][j]);//输入第一个矩阵
    printf("enter %d*%d矩阵2元素\n",m,n);
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            scanf("%d",&b[i][j]);////输入第二个矩阵
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {  
            for(int k=0;k<m;k++)
                c[i][j]=c[i][j]+a[i][k]*b[k][j];//结果矩阵
        }
        printf("矩阵的乘积是:\n");
    for(i=0;i<m;i++)//这是打印出相乘的效果
    {  if(i<n)
        for(j=0;j<m;j++)
            printf("%4d",a[i][j]);
        if((i==n/2)&&(i<n))
            printf("   *  ");
        else
            printf("      ");
        for(j=0;j<n;j++)
            printf("%4d",b[i][j]);
        if((i==n/2)&&(i<n))
            printf("  =   ");
        else     
             printf("      ");
        if(i<n)
        for(j=0;j<n;j++)
            printf("%5d",c[i][j]);
            printf("\n");
            if(i==n-1)
            { char d=' ';
                for(int p=0;p<m;p++)
                printf("%3c",d);
                printf("   ");
                }
    }


}
运行试试你就知道问题出在哪?输入2 3在测试3 4没发现就试试4 5
2013-05-16 23:04
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
貌似明白你说的意思了!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-17 08:11
快速回复:%3d与%3c一样么,打出来的效果怎么不一样
数据加载中...
 
   



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

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