为什么我的\n罢工了?

#include<stdio.h>
#include<malloc.h>
int main()
{
    int n,i,count=0,j,flag=0,p=0;
    scanf("%d",&n);
    char (*a)[18]=(char (*)[18])malloc(sizeof(char)*n*18);
    char b[18]={'7','9',':','5','8','4','2','1','6','3','7','9',':','5','8','4','2'};
    for(i=0;i<n;i++)
        scanf("%s",a[i]);
    for(i=0;i<n;i++){
        count=0;
        flag=1;
        for(j=0;j<17;j++){
            if(a[i][j]<'0'||a[i][j]>'9')
                {printf("%s\n",a[i]);
            p++;
            flag=0;
            break;}}
        if(flag)
        {
        for(j=0;j<17;j++)
        {
            count=count+(b[j]-48)*(a[i][j]-48);
        }
        count=count%11;
        if(count==11){
            if(a[i][j]!='X'){
                p++;
                printf("%s",a[i]);}}
        else{
            if(count=!(a[i][j]-48)){
                p++;
                printf("%s\n",a[i]);}
        }
        }
    }
    if(!p)
        printf("All passed");
    return 0;
}

为什么我的换行符没有用?

我试了一下,没问题

printf("%s",a[i]);}}

改为

puts(a[i]);试试

没有换行

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632