You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除数组最后一个元素末尾的逗号?C语言代码优化需求

解决C语言数组输出末尾多余逗号的问题

你的问题出在输出数组的循环里:原代码对每个元素都输出%d,,导致最后一个元素后面也带了逗号。下面给你几种简单的修改方式:

方法一:先输出第一个元素,后续元素先打逗号再输出数字

这种方式逻辑直观,还能顺便处理数组为空的情况:

#include <stdio.h>
int main() {
    int size, i, element [100];
    
    printf("Enter array size: ");
    scanf("%d", &size);
    
    for(i=0; i<size; i++) {
        printf("Enter element %d: ",i+1);
        scanf("%d", &element[i]);  
    }
    
    printf("{");
    if (size > 0) {
        printf("%d", element[0]);
        for (i = 1; i < size; i++) {
            printf(",%d", element[i]);
        }
    }
    printf("}");
    
    return 0;
}

方法二:循环内判断是否为最后一个元素

在循环里检查当前是不是最后一个元素,是的话只输出数字,否则输出带逗号的格式:

#include <stdio.h>
int main() {
    int size, i, element [100];
    
    printf("Enter array size: ");
    scanf("%d", &size);
    
    for(i=0; i<size; i++) {
        printf("Enter element %d: ",i+1);
        scanf("%d", &element[i]);  
    }
    
    printf("{");
    for (i = 0; i < size; i++) {
        if (i == size - 1) {
            printf("%d", element[i]);
        } else {
            printf("%d,", element[i]);
        }
    }
    printf("}");
    
    return 0;
}

方法三:用条件表达式简化代码

把判断逻辑写成一行,让代码更紧凑:

#include <stdio.h>
int main() {
    int size, i, element [100];
    
    printf("Enter array size: ");
    scanf("%d", &size);
    
    for(i=0; i<size; i++) {
        printf("Enter element %d: ",i+1);
        scanf("%d", &element[i]);  
    }
    
    printf("{");
    for (i = 0; i < size; i++) {
        printf("%d%s", element[i], (i == size-1) ? "" : ",");
    }
    printf("}");
    
    return 0;
}

这三种方法都能解决末尾多逗号的问题,你可以根据自己的习惯选择其中一种。

内容的提问来源于stack exchange,提问作者historia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 08:35:20