关于3-5编程练习
来源:3-5 编程练习
慕仰5134048
2018-12-13 18:35:49
为什么我这么编出来一堆乱码??
程序如下
#include <iostream>
using namespace std;
int main()
{
//定义一维字符数组
char mych[]="abcdefg12345";
char ch1[12];
char ch2[12];
//for循环分割mych数组,放到对应的数组中去
for(int i;i<12&&mych[i]!='\0';i++)
{
if(mych[i]>='a'&&mych[i]>'g')
{
char ch[8];
mych[i]=ch[i];
ch1[i]=ch[i];
}
else if(mych[i]>='1'&&mych[i]<='5')
{
char ch[8];
mych[i]=ch[i];
ch2[i]=ch[i];
}
}
//输出新数组
cout<<ch1<<endl;
cout<<ch2<<endl;
return 0;
}1回答
Tender10
2018-12-13
#include <iostream>
using namespace std;
int main()
{
//定义一维字符数组
char mych[]="abcdefg12345";
char ch1[12];
char ch2[12];
int c1 = 0;
int c2 = 0;
//for循环分割mych数组,放到对应的数组中去
for(int i=0;i<12&&mych[i]!='\0';i++)
{
if(mych[i]>='a'&&mych[i]<'g')
{
ch1[c1]=mych[i];
c1++;
}
else if(mych[i]>='1'&&mych[i]<='5')
{
ch2[c2]=mych[i];
c2++;
}
}
//输出新数组
cout<<ch1<<endl;
cout<<ch2<<endl;
return 0;
}可以参考如上代码进行修改,首先mych[i]<'g'应该是小于,而不是大于,条件错了。另外if和else if里的语句,应该修改一下,应该分别定义一个c1,c2变量,因为i可能导致就不是第一个元素,比如说abcdefg都存储完了,下次到else if里,ch2存储的i的值就不是0开始的了。如果还有什么不明白的地方,可以在问答里进行提问,老师都会帮助解决。助学习愉快~
相似问题