Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我打印阵列时遇到问题_C++ - Fatal编程技术网

C++ 我打印阵列时遇到问题

C++ 我打印阵列时遇到问题,c++,C++,我不明白为什么打印不正确 void countChars(ifstream& inData, string filename, int x[], int y[]) { char ch; int count = 0; for(int i=0; i < 58; i++) { x[i] = 0; } inData.open(filename.c_str()); while (inData >> ch)

我不明白为什么打印不正确

void countChars(ifstream& inData, string filename, int x[], int y[])
{
    char ch;
    int count = 0;

    for(int i=0; i < 58; i++)
    {
        x[i] = 0;
}
    inData.open(filename.c_str());

    while (inData >> ch)
    {
        count++;
        if ((ch >= '!') && (ch <= 'Z'))
        {
            x[ch - '!']++;
        }
    }

    for(int i=0; i < 58; i++)
    {
        y[i] = (x[i] / count * 100);
        cout << y[i] << endl;
    }   
}
void countChars(ifstream&inData,字符串文件名,int x[],int y[])
{
char ch;
整数计数=0;
对于(int i=0;i<58;i++)
{
x[i]=0;
}
open(filename.c_str());
while(inData>>ch)
{
计数++;

如果((ch>=“!”)&&(ch数组x,y和count是整数数组。因此x[i]数组x,y和count是整数数组。因此x[i]在您的行中很明显


x数组中的每个字段都可能小于count,因此除法的结果总是小于1,因为您选择使用始终为0且0*100=仍然为0的整数。

很明显,在您的行中


x数组中的每个字段都可能小于count,因此除法的结果总是小于1,因为您选择使用始终为0且0*100=仍然为0的整数。

将x或count的数据类型更改为float或double。

将x或count的数据类型更改为float或double。

x[i]/count
是一个整数运算,由于整数是一个整数,而不是一个浮点数,因此结果为0。请重新排列您的公式,使其不会发生这种情况,或者将其中一个整数强制转换为浮点。@RetiredInja Agree。0或100除外。
x[i]/count
是一个整数运算,由于整数是一个整数,而不是一个浮点数,因此结果为0。请重新排列您的公式,使其不会发生这种情况,或者将其中一个整数转换为浮点数。@RetiredInja Agree。预期为0或100,两者之间无任何内容。除非每个字符都相同且在范围内。@bvj:ya,但带有rea概率很小,除非每个字符都相同且在范围内。@bvj:ya,但概率很小
y[i] = (int)(x[i] * 100.0 / count + 0.5);
y[i] = (int)(x[i] * 100.0 / count + 0.5);