在这段代码中我尝试将a [5]分成两个数组,在数组中存储数据的标准....... 并将数组a [5]的索引存储到其他数组,以显示这些索引包含不同的数据元素 但我不适合我
#include <iostream>
using namespace std;
void printarray(int b[], int count)
{
int i;
for(i=0;i<count;i++)
cout<<b[i]<<endl;
}
void main()
{
int a[5]={1,0,0,1,1};
int array[5][5]=
{
{0,5,0,4,0},
{0,0,6,0,7},
{0,0,0,0,8},
{0,0,0,0,10},
{0,0,0,0,0}
};
int count=0;
int counti=0;
int C1=0;
int i;
for(i=0;i<5;i++)
{
if(C1==a[i])
{
count++;
}
else
{
counti++;
}
}
int *b= new int[count];
int *c= new int[counti];
for(i=0;i<5;i++)
{
if(C1==a[i])
{
b[i]=i;
}
else
{
c[i]=i;
}
}
printarray(b,count);
}
代码显示草药值... plz帮助我 它显示以下结果 -842151450 1
答案 0 :(得分:1)
第一个i是1,所以b将包含{1,2}。其中(b [1] = 1,b [2] = 2)
当你循环通过b打印从索引0开始的所有元素,尽管b从索引1开始。
您可以使用(j,k而不是i)修复索引。
int *b = new int[count];
int *c = new int[counti];
int j, k;
j = k = 0;
for (i = 0; i<5; i++)
{
if (C1 == a[i])
{
b[j++] = i;
}
else
{
c[k++] = i;
}
}
printarray(b, count);