+ -
当前位置:首页 → 问答吧 → 散分了,奇数楼都有分!!偶数楼酌情给分!!

散分了,奇数楼都有分!!偶数楼酌情给分!!

时间:2011-12-06

来源:互联网

看下这个程序的问题在哪??
为什么会有汉字输出!!
C/C++ code

#include <stdio.h>
#include <iostream>
int main()
{char str1[100],str2[50];
int i=0,count=0,p;
int num[26]={0,0,0,0,0,0,0,0,0,
             0,0,0,0,0,0,0,0,0,
             0,0,0,0,0,0};


cout<<"input a string:";
gets(str1);
while(str1[i]!='\0')
{p=((int)str1[i])-97;
if(num[p]==0)
{
str2[count]=str1[i];
num[p]=1;
count++;
}
 i++;
}

cout<<"output the string:"<<str2<<endl;

}


作者: timerfire   发布时间: 2011-12-06

该回复于2011-12-06 10:37:59被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#2楼 得分:0回复于:2011-12-06 10:40:05

作者: qwer_boo   发布时间: 2011-12-06

该回复于2011-12-06 11:03:51被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#4楼 得分:0回复于:2011-12-06 10:41:39
C/C++ code

p=((int)str1[i])-97;//这句完了之后判断下是不是p在0-25之间

作者: chenph_210   发布时间: 2011-12-06

欢迎来占。。送完为止!!

作者: Demon__Hunter   发布时间: 2011-12-06

C/C++ code

char str1[100] = {0};
char str2[50] = {0};


初始化数组

作者: qwer_boo   发布时间: 2011-12-06

引用 3 楼 demon__hunter 的回复:
占奇数楼


我输入的全是小写字母, 都是在0-25之间的,就是不知道哪里出错了,求各位大牛指点!!

作者: timerfire   发布时间: 2011-12-06

str2没有初始化,后面没有'\0'做终止符,输出了后面的随机值

作者: chenph_210   发布时间: 2011-12-06

引用 3 楼 demon__hunter 的回复:

占奇数楼
++;

作者: timerfire   发布时间: 2011-12-06

奇数是啥?

作者: mousecarrot   发布时间: 2011-12-06

继续。。

作者: Jokul_Lee   发布时间: 2011-12-06

该回复于2011-12-06 11:03:23被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#13楼 得分:0回复于:2011-12-06 10:47:06
我不占偶数楼,后面何来奇数楼。。

作者: Ulfsaar   发布时间: 2011-12-06

引用 11 楼 ulfsaar 的回复:
继续。。
呵呵,貌似你的是偶数楼的<._.>

作者: Ulfsaar   发布时间: 2011-12-06

奇数楼?

作者: yuanjie_123   发布时间: 2011-12-06

引用 5 楼 timerfire 的回复:
欢迎来占。。送完为止!!

果然是这样,谢谢了!!!

作者: jacicson1987   发布时间: 2011-12-06

没初始化,也没判断是否会访问越界

作者: timerfire   发布时间: 2011-12-06

我不占偶数楼,后面何来奇数楼

作者: Rotaxe   发布时间: 2011-12-06

不懂C,我只是来接分的

作者: timerfire   发布时间: 2011-12-06

引用 17 楼 wanglikai91 的回复:
没初始化,也没判断是否会访问越界


这个题的用意是,输入由小写字母组成的字符串,并返回不重复的子串,

作者: wanglikai91   发布时间: 2011-12-06

偶数楼我来占!!!

作者: muqiuyu1988   发布时间: 2011-12-06

引用 18 楼 muqiuyu1988 的回复:
我不占偶数楼,后面何来奇数楼
偶数楼酌情给分,不是不给分的说!!

作者: lxsuperm   发布时间: 2011-12-06

hoho,技术楼

作者: timerfire   发布时间: 2011-12-06

占个偶数楼

作者: timerfire   发布时间: 2011-12-06

该回复于2011-12-06 11:21:45被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#26楼 得分:0回复于:2011-12-06 11:10:53
C/C++ code

#include <stdio.h>
#include <iostream>
int main()
{char str1[100],str2[50];//没有清零操作
 memset(str1,0,sizeof(str1));
 memset(str2,0,sizeof(str2));
int i=0,count=0,p;
int num[26]={0,0,0,0,0,0,0,0,0,
             0,0,0,0,0,0,0,0,0,
             0,0,0,0,0,0};//int num[26] = {0}这样就可以初始化了


cout<<"input a string:";
gets(str1);
while(str1[i]!='\0')
{p=((int)str1[i])-97;//如果希望操作的知识字母,那么需要范围判断
if(num[p]==0)
{
str2[count]=str1[i];
num[p]=1;//如果输出的不是字符,那么可能会越界
count++;
}
 i++;
}

cout<<"output the string:"<<str2<<endl;

}

作者: timerfire   发布时间: 2011-12-06

奇数位

作者: liux0614   发布时间: 2011-12-06

该回复于2011-12-06 11:25:44被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#29楼 得分:0回复于:2011-12-06 11:18:05
奇数来到:)

作者: hsudatalks   发布时间: 2011-12-06

该回复于2011-12-06 11:25:45被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#31楼 得分:0回复于:2011-12-06 11:23:47
楼主你把具体要求说明一下吧 我按照你的来了两次:
input: hello
output: hello3

input: allo
output: alo

楼主怎么输入才会有汉字的情况?

作者: czjm002   发布时间: 2011-12-06

编译器坏了

作者: studyCBC   发布时间: 2011-12-06

我来了 lz阴险的笑了

作者: wumuzi520   发布时间: 2011-12-06

接 分

作者: yiwang58   发布时间: 2011-12-06

接 分

作者: jptaozhantaozhan   发布时间: 2011-12-06

接 分

作者: liuxingvcvc   发布时间: 2011-12-06

抢奇数!

作者: liux0614   发布时间: 2011-12-06

作者: ITcql   发布时间: 2011-12-06

作者: mosal   发布时间: 2011-12-06

引用 8 楼 mousecarrot 的回复:
str2没有初始化,后面没有'\0'做终止符,输出了后面的随机值

UP……

作者: zzcmx2008   发布时间: 2011-12-06

作者: zzcmx2008   发布时间: 2011-12-06

str2没有字符串结束标识,输出的汉字实际上是count个字符之后的乱码。
循环结束应该加上str2[count]='\0'

作者: zzcmx2008   发布时间: 2011-12-06

str2没有字符串结束标识,输出的汉字实际上是count个字符之后的乱码。
循环结束应该加上str2[count]='\0'

作者: r3000   发布时间: 2011-12-06