2025/12/30 5:50:08
网站建设
项目流程
有好看图片的软件网站模板,做影视网站难吗,工业设计是干什么的,wordpress 的主题1.现在需要将其转换为千分位格式#xff0c;即从整数最低位开始#xff0c;每三位数字插入一个英文逗号#xff0c;以提高可读性。例如#xff0c;对于123456789#xff0c;转换后为 123#xff0c;456#xff0c;789。也就是说从后往前只要够三个字符就增加一个英文逗号…1.现在需要将其转换为千分位格式即从整数最低位开始每三位数字插入一个英文逗号以提高可读性。例如对于123456789转换后为 123456789。也就是说从后往前只要够三个字符就增加一个英文逗号怎么才能从后往前数呢这个是时候就需要逆序字符串就可以得到从前往后面数三个数据 增加一个变量count用来计数只要能被三整除就将这个位置后面的所有元素都像后面挪动然后将这个位置增加英文逗号然后让指针跳过这个英文逗号继续像后面找直到找到‘\0’,增添完成以后再将字符串逆序一下打印出来就可以了最坏的时间复杂度应该是On^2,每次到三个都要进去循环效率不高。只是用了几个常量级的临时变量空间复杂度是常量级#define _CRT_SECURE_NO_WARNINGS #includestdio.h #includeassert.h void reverse(char* str)//逆序字符串 { assert(str);//断言一下因为后面会解引用对空指针的解引用很危险 int len strlen(str); char* left str; char* right str len - 1; while (rightleft)//两个指针分别向后面寻找 { char temp *right; *right *left; *left temp; left; right--; } } int main() { //输入一个字符串然后将这个字符串逆序逆序后从前向后遍历找到三个就添加一个其他是字符后移 char str[100] { 0 }; scanf(%s, str); reverse(str);//先逆序 int count 0; char* temp str; while (*temp)//*为假说明已经到字符串末尾了 { if (count % 3 0count!0) { int len strlen(str);//每次进来都要重新计算因为添加进去的有英文逗号 char* rear strlen;//再创建一个变量字符从后面开始挪动 while (rear!temp) { *rear *(rear - 1);//减到temp把temp空起来 rear--; } *temp ,;//把英文逗号赋值过去 temp;//跳过这个英文逗号 } count;//计数 temp;//当前字符的位置 } reverse(str); printf(%s,str); return 0; }