#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
ifstream fin("C:\\Users\\rati\\Desktop\\iris_flower.txt");
float s=0;
int x,n=5,m=150,i,j;float d[5]={0};
float **iris;
float ss=n;
iris=new float *[n];
for(i=0;i<n;i++)
iris[i]=new float [m];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fin>> iris[i][j];
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<iris[i][j]<<" ";
cout<<endl;
}
for(j=0;j<m;j++){
for(i=0;i<n;i++)
s+=iris[i][j];
d[j]+=s/ss;
cout<<s<<endl;
}
system ("pause");
}
这是我的完整代码。我想用指针(没有循环)从2d数组中打印一行。我希望你能写一个片段来添加它做了我想做的事情
答案 0 :(得分:2)
您可以使用指针修改数组,但是如果要打印数组,则必须使用循环。
看看这个例子: -
int main() {
int n = 3, m = 4, a[n][m], i, j, (* p)[m] = a;
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
a[i][j] = 1;
p++;
(*p)[2] = 9;
return 0;}
这里
p
是指向4个元素int
数组的指针(即指向int
指针的指针,其中第一个维度为4,第二个维度为未知)。当您递增p
时,它会指向下一个4元素int
数组,即第五个int
数组。然后使用偏移量2取消引用p
,这意味着第七个int
更改,因此您获得
1 1 1 1
1 1 9 1
1 1 1 1
要将p指向的整数数组转换为字符串,请尝试: -
string int_array_to_string(int *p, int size_of_array){
string returnstring = "";
for (int temp = 0; temp < size_of_array; temp++)
returnstring += itoa((* p)[temp]);
return returnstring;
}
你从这里得到行数。
答案 1 :(得分:0)
对于一系列的整数,它就像字母数组一样容易。
int n=10, m=10;
int width, height;
char **tab = new char*[n];
for (int x = 0; x < n; x++) {
tab[x] = new char[m];
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
tab[i][j] = rand()%10 + '0';
for (int i=0; i<n; i++) { for(int j=0; j<n; j++) cout << tab[i][j]; cout << endl; }
cout << endl;
cout << tab[5];
如果你不能使用循环和递归,你可以这样做
const int n=3;
float *k =new float [n];
k[0]=6.123;
k[1]=9.5345;
k[2]=1.32423;
int i=0;
label:
if(i<n){
cout << *(k+i) << " ";
i++;
goto label;
}