| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 691 人关注过本帖
标题:C++中已经初始化的数组如何去初始化啊?
只看楼主 加入收藏
zhaobuzhule
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2014-1-15
收藏
 问题点数:0 回复次数:9 
C++中已经初始化的数组如何去初始化啊?
比如一个已经初始化过的数组a[10],怎么把a[10]里已经有的值去掉
搜索更多相关主题的帖子: 如何 
2014-03-26 16:47
hubinyes
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:104
专家分:557
注 册:2014-2-4
收藏
得分:0 
用循环去赋值
2014-03-26 16:52
zhaobuzhule
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2014-1-15
收藏
得分:0 
回复 2楼 hubinyes
我的意思是去掉已经初始化的值
2014-03-26 17:05
zhaobuzhule
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2014-1-15
收藏
得分:0 
让a数组回到没有初始化的状态
2014-03-26 17:06
hubinyes
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:104
专家分:557
注 册:2014-2-4
收藏
得分:0 
回复 4楼 zhaobuzhule
回到初始状态干什么??
2014-03-26 19:16
i80286
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:99
专家分:428
注 册:2013-9-30
收藏
得分:0 
无法回答这种莫名其妙的问题
如果是常量,定义后为什么要变更数值?
如果是变量,定义后是否初始化有什么区别?
2014-03-26 19:35
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
直接赋值就行了,没有回到初始状态这个说法

你用另外一个数组保存它的原来数据,要还原的时候,再填充进去就行了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-03-26 20:40
zhaobuzhule
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2014-1-15
收藏
得分:0 
回复 5楼 hubinyes
因为我写的一个求两个16进制的数的加法的程序在第一次运算时正常,第二次运算就不对了,我估计是数组已经赋值的原因,或者我估计错误,程序代码我这样写的#include<iostream>
#include<cmath>
void shuru(char a[],int &size);
void jisuan(char a[],int &size1,char b[],int &size2);
int zhuanhuan(char a[],int size);
int main()
{
    using namespace std;
    cout<<"这是一个计算两个十六进制数加法的程序"<<endl;
   
    char p;
    do
    {
        
        char a[10],b[10];
        int size1,size2;
         cout<<"请输入两个十六进制的数并用空格隔开"<<endl;
        shuru(a,size1);
        shuru(b,size2);
        jisuan(a,size1,b,size2);
        cout<<"是否继续计算?(Y or N)"<<endl;
        cin>>p;
    }
    while(p=='y'||p=='Y');
    return 0;
}
void shuru(char a[],int &size)
{
    using namespace std;
    char next;
    size=0;
    for(int i=0;i<10;i++)
    {
        cin.get(next);
        if(next==' '||next=='\n')
            break;
        a[i]=next;
        size++;
    }
    return;
}
void jisuan(char a[],int &size1,char b[],int &size2)
{
    using namespace std;
    int x,y,sum;
    x=zhuanhuan(a,size1);
    y=zhuanhuan(b,size2);
    sum=x+y;
    cout<<"结果转换为十进制为:"<<sum<<endl;
    return;
}
int zhuanhuan(char a[],int size)
{
    using namespace std;
    int num=0;
    for(int i=0;i<size;i++)
    {
        switch(a[i])
        {
            case '0':
                num=num+0*pow(16,size-1-i);
                break;
            case '1':
                num=num+1*pow(16,size-1-i);
                break;
            case '2':
                num=num+2*pow(16,size-1-i);
                break;
            case '3':
                num=num+3*pow(16,size-1-i);
                break;
            case '4':
                num=num+4*pow(16,size-1-i);
                break;
            case '5':
                num=num+5*pow(16,size-1-i);
                break;
            case '6':
                num=num+6*pow(16,size-1-i);
                break;
            case '7':
                num=num+7*pow(16,size-1-i);
                break;
            case '8':
                num=num+8*pow(16,size-1-i);
                break;
            case '9':
                num=num+9*pow(16,size-1-i);
                break;
            case 'a':
                num=num+10*pow(16,size-1-i);
                break;
            case 'b':
                num=num+11*pow(16,size-1-i);
                break;
            case 'c':
                num=num+12*pow(16,size-1-i);
                break;
            case 'd':
                num=num+13*pow(16,size-1-i);
                break;
            case 'e':
                num=num+14*pow(16,size-1-i);
                break;
            case 'f':
                num=num+15*pow(16,size-1-i);
                break;
        }
    }
    return num;
}
当输入y准备进行第二次运算时就不对了,我调试后显示第二次输入时第一个数组的值没有赋值进去,第二个数组的值反而被赋值成了我本想赋给第一个数组的值。
你看看这是哪里错了呀?


2014-03-26 21:38
hubinyes
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:104
专家分:557
注 册:2014-2-4
收藏
得分:0 
回复 8楼 zhaobuzhule
我觉得是你那读取控制有问题,你可以改为 if(next==' '),每次在数字后都打一个空格试试。。。

每次y后,回车,被第一个输入读取了,所以没有读取到。
2014-03-27 11:25
zhaobuzhule
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2014-1-15
收藏
得分:0 
回复 9楼 hubinyes
多谢了,我发现问题了,第二次赋值时把'\n'赋值给了数组a,我在cin>>p;后面加一个qukong()函数就解决了
void qukong()
{
    using namespace std;
    char a;
    do
    {
        cin.get(a);
    }
    while(a!='\n');
    return;
}
2014-04-01 21:28
快速回复:C++中已经初始化的数组如何去初始化啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027901 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved