Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        5个月前关闭。
                                                                                            
                
        
我在每个printf循环中都使用了一个for。现在我要在单行中打印输出。

arr[n],i;
for(i=0;i<=n;i++)
{
     scanf("%c",&arr[i]);
}
for( i = 0; i <= n; i++ )
{
    if(i % 2 == 1)
        printf("%c", arr[i]);
}
for( i = 0; i <= n; i++ )
{
    if(i % 2 == 0)
        printf("%d", arr[i]);
}


我希望rudraprakash的输出为rdarksurpaah,但实际输出是这样的:

rdarks
urpaah


第一个程序打印偶数索引,再打印不带换行符的奇数索引。

最佳答案

您可能在这里做错了很多事情,首先必须根据要创建的数组设置n。

您没有在格式说明符之前使用空格,因此不会忽略空格

for( i = 0; i <= n; i++)


这是针对n + 1个元素而不是n的数组,您应该使用

for( i = 0; i < n; i++)


在行中

printf("%d", arr[i]);


您应该使用%d时使用的是%c

我的密码

int main()
    {
    int n;
    printf("enter number of characters you want to input\n"); //scan for number of inputs
    scanf("%d", &n);

            char arr[n];
            int i;

            for(i=0;i<n;i++)
            {
                    scanf(" %c",&arr[i]);       //space before %c
            }
            for( i = 0; i < n; i++ )
            {
                    if(i % 2 == 0)
                            printf("%c", arr[i]);
            }
            for( i = 0; i < n; i++ )
            {
                    if(i % 2 == 1)
                            printf("%c", arr[i]);
            }

    }

10-07 19:26
查看更多