如何移除数组最后一个元素末尾的逗号?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
相关产品推荐
相关产品推荐

