‘壹’ 在c语言中定义整型输入整数前有0,怎样使输出结果前的0不去掉
1、使用printf函数的格式化输出即可实现在数字前补0。
2、例如:
printf("a=%06d\n", a);
//输出6位十进制整数 左边补0,显示 a=001234;
这里%06d的0就是指在前面补0占位,6代表位宽。一般这两个要一起用。
‘贰’ 在C语言中定义整型输入整数前有0,怎样使输出结果前的0不去掉
一般情况你是做不到的,因为数据前面有0没0是输入输出的问题,不是数据存储的问题,在程序运行过程中,变量中的数据是不带前面的0的。
解决办法
一、输入宽度与输出所定义的宽度相同
printf("%05d" , x ) ; //输出前面补0,不管你输入的数据前面有没有0
二、按字符串输入数据,而不是按整型数据来输入
char x[100];
scanf("%s" , x );
printf("%s" , x ); //输入是什么,输出就是什么
运算时,再将x转换成相应的整数,采用atoi(x) ;
‘叁’ c语言问题删除字符串前面的0(多组数据)
#include <stdio.h>
int main()
{
char a[1000000],c;
int i,k;
while((gets(a))!=NULL)//(gets(a))!=NULLEOF为整型,而gets(a)返回的是一个char指针,不能进行比较,可改为NULL
{
c=getchar();
getchar();//这儿要加一个getchar(),就可以把你输入小写字母后的回车符给吸收了,这样,你就能在下一次中继续输入字符串,否则就乱了
for(i=0;a[i]!='\0';i++)
{
if(i==0)
k=0;
if(a[i]==c)
k++;
}
printf("%d\n",k);
}
return 0;
}
//以下是我自己写的一个,用scanf()这种标准输入会比较安全
#include <stdio.h>
#include<string.h>
int main()
{
char a[1000000],c;
int i,k;
while(scanf("%s\n%c",a,&c)!=-1)
{
k=0;//每次都得初始化一下计数k
for(i=0;a[i]!='\0';i++)
{
if(a[i]==c) k++;
}
printf("%d\n",k);
}
return 0;
}
‘肆’ C语言中逆序输出数组怎么去掉前边的0
#include <stdio.h>
int main()
{ int i,n=6,a[6]={4,7,0,0,0,0};
for(i=n-1;i>0;i--)
if(a[i])break;
for(;i>-1;i--)
printf("%d",a[i]);
printf(" ");
return 0;
}
‘伍’ c语言如何只删除一个字符串一个数前面的0
char s[] = "0000123023";
int i, j;
for (i = 0; s[i] == '0'; i++);
for (j = 0; s[j]=s[i]; i++, j++);
‘陆’ c语言中输出时怎么将第一个非零数字前的零去掉
#include<stdio.h>
//先跳过'0'字符,再输出剩下的字符
//注意特判下0的情况
voidoutput(chars[]){
inti=0;
while(s[i]=='0'&&s[i]!=NULL)i++;//跳过字符'0',即前导0
if(s[i]==NULL)putchar('0');//跳过所有'0'字符后下标i指向了字符串结尾,说明此时要输出的数是0
while(s[i]!=NULL)putchar(s[i++]);//输出余下的字符
putchar(' ');
}
intmain(){
chars[]="0005080";
output(s);
return0;
}
‘柒’ C语言中字符串输出如何去掉最前面的未知个数个0
i为4,*p=s+3;p++;
p-i,*p=s
printf("%s\n",p-i);是输出一个字符串,这个字符串从数组s开始,直到这个数组结束完,数据的结束标志和字符串是一样的,故可到数组最后一个最就不打下面的字符了。
‘捌’ c语言怎么把小数前面的零去掉,例如0.123输出的是.123。急!
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
chara[7];
doublex=0.123;
printf("%g-->%s ",x,gcvt(x,6,a)+1);
return0;
}
‘玖’ C语言如何把转换进制数前面的0去掉呢
void main()
{
char popo;
int a[N],b,c,i=0,j;
printf("十进数为:");
int u=0,y;
scanf("%d",&b);
c=b;
printf("直接输出十六进制数为%x",c);
printf("\n");
printf("二进制数为:");
for(;;)
{
i=0;
if(u>0)
printf("二进制数为:");
while(b) //不用for循环,用while循环,直到b=0退出循环
{
a[i]=b%2;
b=b/2;
i++;
}
for(j=i-1;j>=0;j--)//输出时借助上面用到的i,这样就不会输出多余的
printf("%d",a[j]);
printf("\n");
printf("转换的十六进制数为:");
i=0;//为了上面用到i不影响下面,置0
while(c)
{
a[i]=c%16; //输出十六进制改法同上咯
c=c/16;
i++;
}
for(j=i-1;j>=0;j--)
{if(a[j]>=10)
printf("%c",a[j]+55);
else
printf("%d\n",a[j]); }
printf("是否继续?(Y/N)");
fflush(stdin);
scanf("%c",&popo);
if((popo=='n' || popo=='N') || (popo!='y' && popo!='Y'))
break;
fflush(stdin);
printf("十进数为:");
scanf("%d",&b);
c=b;
fflush(stdin);
u++;
for(y=0;y<20;y++)
a[y]=0;
}
printf("\n");
system("pause");
}
这仅仅是对Chen b2009的程序进行一些修改,加了个重复输入的功能。
‘拾’ c语言念整数,我编的程序怎么去除前面输出的0.程序如下.(dve c++ 5.6.1)
可以设置一个标志:只有输出了非零数据以后再遇到0才输出"ling"。具体做法:
前面加语句:
int
f=0;
switch语句之前加语句:
if(n!=0)
f=1;
后面的case
0分支改为:
case
0
:
if(f==1)
printf("ling
");
break;