c语言中,输入一组数如:12345678,从数尾开始,每三位插入一个逗号。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中,输入一组数如:12345678,从数尾开始,每三位插入一个逗号。相关的知识,希望对你有一定的参考价值。

例如:输入12345678 结果:12,345,678

参考技术A #include<stdio.h>
#include<string.h>

#define N 50

int main()

char array[N],b[N];
int j,k,m,n,i=0;
printf("Please input a int list: ");
scanf("%s",array);
i=strlen(array); //取长度
m=i%3; //前面剩下的数的个数
k=i/3; //逗号的个数
for(j=0;j<=m;j++)
b[j]=array[j];
b[m]=','; //这段先将前面的那几个数放在中转数组b[]中
for(j=m+1,n=m;j<i+k-1;j++) //开始后面的循环,从第一个逗号后面开始

if((j-m)%4==0) //判断插入逗号的位置
b[j]=',';
else

b[j]=array[n];
n++; //n的设置是用来解决原数组和中转数组的异步问题


b[i+k-1]=array[i-1]; //避免数组的个数为3的倍数的时候出现末尾的输出不正确
printf("The list after insert: ");
for(j=0;j<i+k;j++) //输出
printf("%c",b[j]);
printf("\n");
return 0;


由于这个显示的问题,可读性比较差,你可以复制到vc下看看就比较清楚了应该,用链表会更简单的,先给你写了个这个,也可以对字符操作
参考技术B 字符串输出,不要数输出,
或者你的编译器的问题
参考技术C #include <stdio.h>
#include <string.h>

int main()
int len,i,r;
char a[1024];
gets(a);
len=strlen(a);
r=len%3;
for(i=0;i<len;i++)
if(i&&i==r)
printf(",");
r+=3;

printf("%c",a[i]);

return 0;
参考技术D #include<stdio.h>
void main()
char a[20];
char *p=a;
int len=0,i;
clrscr();
printf("enter the num");
scanf("%s",a);
len=strlen(a);
for(i=0;i<len;i++)
printf("%c",p[i]);
if(i==len-1)continue;
if((i+1-len%3)%3==0)
printf(",");

第5个回答  2008-10-24 //---------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>

int main(void)

char str[80];
int i,j;
scanf("%79s",str);
for (i = 0; i<strlen(str)%3; i++)
putchar(str[i]);

putchar(',');
for (j=0; i<strlen(str); i++)
putchar(str[i]);
if (++j%3==0&&i!=strlen(str)-1)
putchar(',');



return 0;

//---------------------------------------------------------------------------本回答被提问者采纳

c语言求解,,,输出一组数的最大值,最小值,和,平均值(保留2位小数)。。不能用数组

不能用数组

#include "stdio.h"

int main()

     int n,i=0;

     double num,sum=0,ave=0,max,min;

     printf("一共有多少个数:");

     scanf("%d",&n);

     printf("请输入%d个数:\\n",n);

     scanf("%lf",&num);

     max=min=num;

     sum+=num;

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

     

          scanf("%lf",&num);

          if(num>max)

              max=num;

          if(num<min)

              min=num;

          sum+=num;

 

    

     ave=sum/n;

     printf("输入的%d个数中,最大值为%.2lf,最小值为%.2lf,和为%.2lf,平均值为%.2lf\\n",n,max,min,sum,ave);

    

 

参考技术A

#include "stdio.h"

int main()

float d,max,min,sum,n;

printf("输入一组数,以非数字结束:\\n");

n=0;

sum=0;

while(scanf("%f",&d)>0)

if(n==0)

max=d;

min=d;

if(max<d) max=d;

if(min>d) min=d;

sum+=d;

n=n+1;

printf("最大数是:%.2f\\n",max); 

printf("最小数是:%.2f\\n",min); 

printf("和是:%.2f\\n",sum);

printf("平均数是:%.2f\\n",sum/n);

以上是关于c语言中,输入一组数如:12345678,从数尾开始,每三位插入一个逗号。的主要内容,如果未能解决你的问题,请参考以下文章

c语言输入,第一行表示数据组数,第二行表示第一组元素个数,第三行输入元素,后面依次,例 2 6 2

在C语言中,如何输出一组数的排列组合

c语言实现输入一组数自动从大到小排列

C语言将一组数从大到小排序 只能移动相邻的数 并且要求步骤最小 怎么设计逻辑

如何用c语言从一组给定数中找到一个数或者几个数的和使其值最接近指定的数

如何用c语言从一组给定数中找到一个数或者几个数的和使其值最接近指定的数