一个c语言问题?

首先这个是个错误的写法,j=2写成了j=1但是如下图所示,如果j=1每个数对1求余都是0也就意味着全都break了,break之后j也不会等于m,那么哪一个数都存不到数组... 首先这个是个错误的写法,j=2写成了j=1 但是如下图所示,如果j=1每个数对1求余都是0也就意味着全都break了,break之后j也不会等于m,那么哪一个数都存不到数组里面,那我输出的怎么是17后面连续的五个数? 展开
 我来答
丑亮操鸟
2019-12-26 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:27%
帮助的人:902万
展开全部
结果是123456abcdedf。
sscanf()的功能是在第一个字符串中取出满足第二个字符串的格式存入第三个参数中。
%[1-9a-z]表示在第一个字符串中取出1-9和a-z的字符存入buf中。
那么大写字母就不满足条件了,所以结果是123456abcdedf。
望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哈涵易禽雪
游戏玩家

2019-12-24 · 非著名电竞玩家
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:909万
展开全部
会执行。getHex把输入的整数转成16进制字符串,存在s里面。s是字符串,也就是以字符0结尾的字符数组。while循环体循环打印该字符数组的字符,当碰到0字符的时候测试逻辑条件为假,退出循环。所以,return
0会被执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞迎丝凤项
2020-04-05 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:773万
展开全部
对于这个问题,你必须把getHex这个函数的函数体贴出来,
如果在getHex函数里面将s的最后一个元素置为'\0'的话,那么return
0
肯定会执行,如果在getHex函数中对s进行操作之后,没有将其尾部元素置为'\0'的话
return
0
就不执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中二麟7500
2019-12-19 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.1万
采纳率:83%
帮助的人:393万
展开全部


你......是不是谌卫军老师班上的...然而我也很菜(逃..

#include<string.h>
int is_same(char*str,char*s)//str在s中的出现次数
{
char*p;
char str2[100];
int flag=0;
strcpy(str2,s);
p=strtok(str2," ");//可以了解一下strtok函数
while(p!=NULL)
{
if(strcmp(p,str)==0)
{
 flag++;
}
p=strtok(NULL," ");
}
return flag;
}
int main()
{
    char s[500],word[50],bef[500],done[500];
    int ge[250],i,j,k,m;
    gets(s);
    ge[0]=0;
    for(i=0,j=1;i<=strlen(s)-1;i++)//记下空格位置
    {
        if(s[i]==' ')
        {
            ge[j]=i;
            j++;
        }
    }
    ge[j]=strlen(s);
    m=j;
    for(j=0,k=0;j<ge[1];j++)//输入第一个单词(因为一定不重复)
        {
            word[k]=s[j];
            k++;
        }
        word[k]='\0';
        strcat(done,word);
        strcat(done," ");
    for(i=1;i<m;i++)
    {
        k=0;
        for(j=ge[i]+1;j<ge[i+1]&&j>ge[i];j++)//从第二个单词开始一个一个的取出来存在word[]内
        {
            word[k]=s[j];
            k++;
        }
        word[k]='\0';
        k=0;
        for(j=0;j<ge[i];j++,k++)//之前的字符串
        {
            bef[k]=s[j];
        }
        bef[k]='\0';
        if(is_same(word,bef)==0)//第一次出现
        {
            strcat(done,word);
            strcat(done," ");
        }
        if(is_same(word,bef)==1)//第二次出现
        {
            strcat(done,word);
            strcat(done,word);
            strcat(done," ");
        }
        else;//第三次或更多
    }
    puts(done);
    return 0;//不知道为什么前面会有几个空格
}




追问
你这是什么鬼,看错题了吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凭雁菡骑锋
2019-12-23 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:855万
展开全部
int
max(int
x,int
y)
{int
z;
if(x>y)
z=x;
else
z=y;
return(z);
}
这是一个函数,返回return(z)是这个函数的返回值。主函数void
main()没有返回值,但是程序里你想结束程序的地方可以用return返回。不带返回值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式