2301_80447886 2024-01-20 16:17 采纳率: 33.3%
浏览 5
已结题

代码在不同编译器中运行结果不同

天梯L1-039
代码在devc++和pta的运行结果不一样,求高人指点。
这是代码

#include <stdio.h>
#include <string.h>
int main()
{
    int n;
    scanf("%d",&n);
    char a[1001];
    getchar();
    gets(a);
    int i,j,k;    
    int l=strlen(a)/n;
    if(strlen(a)%n>0)
    l++;
    char b[100][100];
    k=0;
    for(i=l-1;i>=0;i--)
    {
        for(j=0;j<n;j++)
        {
            b[j][i]=a[k];
        
            k++;
            if(a[k]==0)
            break;
        }
        if(a[k]==0)
            break;
    }        
        for(j=0;j<n;j++)
        {
            for(i=0;i<l;i++)
            {
                if(b[j][i]==0)
                printf(" ");
                printf("%c",b[j][i]);
            }
            printf("\n");    
        }     
    return 0;
 } 

pta中运行结果

img


devc++中运行结果

img


题目

img

  • 写回答

2条回答 默认 最新

  • micthis 2024-01-20 16:54
    关注
    #include <stdio.h>
    #include <string.h>
    int main()
    {
        int n;
        scanf("%d",&n);
        char a[1001];
        getchar();
        gets(a);
        int i,j,k;    
        int l=strlen(a)/n,r=strlen(a)%n;
        if(r>0)
            l++;
        char b[100][100];
        k=0;
        for(i=l-1;i>=0;i--)
        {
            for(j=0;j<n;j++)
            {
                b[j][i]=a[k];
                k++;
                if(a[k]==0)
                break;
            }
            if(a[k]==0)
                break;
        }        
            for(j=0;j<n;j++)
            {
                for(i=0;i<l;i++)
                {
                    if(i==0 && r>0 && j>=r)
                    //if(b[j][i]==0)
                    printf(" ");
                    else
                        printf("%c",b[j][i]);
                }
                printf("\n");    
            }     
        return 0;
     } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 创建了问题 1月20日