永发信息网

c语言 译码打印字符,输入1'字符串2字符串整数转化成二进制,根据索引1输出字符串中的字符

答案:2  悬赏:40  手机版
解决时间 2021-01-10 01:35
c语言 译码打印字符,输入1'字符串2字符串整数转化成二进制,根据索引1输出字符串中的字符
最佳答案
把描述写清楚一点,或直接给出题目链接,看的不是很明白追问朋友你好~题目就是这样的,我是全部复制过来的....登陆OJ需要权限,所以只是copy过来....请见谅追答因为你这里的整数没有给出范围,所以,不确定如何检查和处理

“如果索引大于字符串的长度小于,则不输出任何字符” 这段话说的让人不好理解。 是不是索引大于或小于串长都不输出啊?
我再看看追问嗯~那句话确实很费解,这个函数可以追答是这里的错:
        //if(i > length2) //这里应该改成 
        if ( i >= length2 ) //不然会有越界现象
        {
            break;
        }
以下测试代码可以让你看出来:

for(i = 0; i < length3;i++)
{
if(i > length2) //-----未改时
{
break;
}
else
{
if(*(p - i) == '1')
{
printf("[%c]",string[i]);//---你输入15 ab就会看出问题了
}
}
}
全部回答
#include
#include
#include
#define M 1000
void main()
{
char data[M];
char string[M],temp1[M];
int length1,length2,i;
int temp;
scanf("%s",data);
scanf("%s",string);
length1 = strlen(data);
length2 = strlen(string);
temp = atoi(data);
i = 0;
while(i < length1 && i < length2)
{
if(((temp >> i) & 0x0001) == 0x0001)
{
printf("%c",string[i]);
}
i++;
}
}追问谢谢回答~请问下额的code问题出在哪里了,因为提交次数有限,所以想搞的清楚些...追答不能通过所有测试例,麻烦大侠帮忙看看...
////
通不过的有哪些追问要是能知道就好了,呵呵~3个测试例,有一个没过...追答哪一个测试例没过追问还没试~想找到原因,因为次数有限...感觉问题就出在“如果索引大于字符串的长度小于,则不输出任何字符”,因为我两次改的在这种情况下输出截然不同,又因为每次都能过两个,说明那两次测试点不是这里的输出,那错误的测试例应该就是这个点了了....追答错误的测试例 输入的是什么追问不知道,没有给出,我上边两次输出区别就是,例如输入 3 a ,两次输出分别是 a 和不输出任何字符追答length2 = strlen(string);
length3 = strlen(temp1);
if(length2 > length3)//输入 3 a 时,length2 == 1,length3 ==2,if条件为假,下面的就没有执行了
{
p = temp1 + length3 -1;
for(i = 0;i < length3; i++)
{
if(*(p - i) == '1')
{
printf("%c",string[i]);
}
}
}追问是的~就是不知道题目想让输出什么,kaixingui2012同学的做法和我后来改的那个差不多吧,还有就是J会小于0么,雪ye同学,刚才本机跑了下你的程序,输入13 abcd结果不对,有点事,先出去下,马上回来,欢迎讨论追答#include
#include
#include
#define M 1000
void main()
{
char data[M];
char string[M],temp1[M];
int length1,length2,i;
int temp;
scanf("%s",data);
scanf("%s",string);
length2 = strlen(string);
temp = atoi(data);
i = 0;
while(i < sizeof(int)*8 && i < length2)// 第一个判断有问题 改对了
{
if(((temp >> i) & 0x0001) == 0x0001)
{
printf("%c",string[i]);
}
i++;
}
printf("\n");
}
/////////////////////////////////////////////////////////
你后来改的问题是有的,第一份代码存在的问题是
输入最大索引值比字符串长度大则
if(i > length2)//当 i == length2 时这里不会break;
下面的
printf("%c",string[i]);
就有点问题了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
速求知道。我在身份证上面的民族看到一个族。
高中留过级的人
江西财经大学体育生录取分数线多少阿?近几年
求lol双开方法
一个△G0化学反应,是完全不能进行还是反应程
藩之琳就是藩长江女儿了吗
JVC GR-D33AC摄像机对焦问题
洪山区武汉纺织大学器材室地址在哪,我要去那
张岱的金山竞渡的翻译
求大师 建伍KAC848汽车功放,通电给音频信号
鼓励男孩的句子
守护甜心 里 皮皮和 嘻嘻 站在一起 对视的 原
德州扑克策略怎么玩?
怎么理解“DECLARE_HANDLE(HRGN);”?
办理京东实名认证要提供哪些资料
推荐资讯
高端服务行业都有哪些
13781190110这个号码联系我说是刑侦科的!有
中国女足世界最好成绩是多少?
家用充电桩可以自己安装吗
大金FVXB372LC-W和大金KFR-72LW/BP2DY-H
会计,会计经理,财务经理,财务总监,首席财务官
金品秀女子养生会所地址在哪,我要去那里办事
判断题当地球运行到近日点附近时,公转的角速
一箱面膜100片有多重
三星i829用哪个手机管家
七老护肤品一整套补水美白多少钱啊
建兴/liteon 睿速 256g v5 sata3怎么样
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?