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

0

0 学习 · 593 问题

查看课程