关于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开始的了。如果还有什么不明白的地方,可以在问答里进行提问,老师都会帮助解决。助学习愉快~
相似问题