c语言中输出时怎么将第一个非零数字前的零去掉

是用数组循环输出的,如0005080,则输出5080这个真的很重要,跪求高手指导(附:我只看得懂C的,求高手见谅。。)... 是用数组循环输出的,如0005080,则输出5080
这个真的很重要,跪求高手指导(附:我只看得懂C的,求高手见谅。。)
展开
 我来答
YZBYZZ
2015-08-23 · TA获得超过547个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:214万
展开全部

#include <stdio.h>
//先跳过'0'字符,再输出剩下的字符
//注意特判下0的情况
void output(char s[]){
    int i = 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('\n');
}

int main(){
    char s[] = "0005080";
    output(s);
    return 0;
}
yc14159265
2012-11-26 · TA获得超过499个赞
知道小有建树答主
回答量:124
采纳率:100%
帮助的人:49.2万
展开全部
#include<stdio.h>
mian()
{
int a[]="0005080",i,add=0;
for(i=0;a[i]!='\0';i++)
{
add+=a[i] //将数字叠加
if(add!=0) //很简单的一个判断(此次之前的数字相加是否为0,不是就输出)
printf("%d",a[i]);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3b6a593
2019-01-04 · TA获得超过667个赞
知道答主
回答量:156
采纳率:33%
帮助的人:16.7万
展开全部
int t=0 , i;
int a[]={0,0,0,5,0,8,0};
for(i=0;i<7;i++)
{
if(a[i]!=0)t++;
if(t!=0)printf("%d",a[i]);
}
//其实就是用一个变量表示出现的非零数字的个数,不是零就说明出现了非零数字,就可以开始输出了;而且楼上最佳答案的代码有一个漏洞,之和为0不代表全都是0,如果数组是3,0,-3,-1,1,那就会输出3,-1。这个显然是不对的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
veket的小号
2012-11-24 · TA获得超过3371个赞
知道大有可为答主
回答量:3762
采纳率:0%
帮助的人:3999万
展开全部
字符数组的
#include <stdio.h>
int main()
{
char s[10] = "0005080";
int i;
int findheadflag = 0;
for(i=0;i<10 && s[i]!='\0';i++)
{
if(s[i]!='0')
{
break;
}
}
printf("%s\n", &s[i]);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a5eb3e1
2012-11-24 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2660万
展开全部
#include <stdio.h>

int main()
{
char * s = "0005080";
int a = 0;
for (; *s != '\0'; s++)
{
if (*s != '0') a = 1;
if (a == 0 && *s == '0') continue;
putchar(*s);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式