[英]what will be output of this code? in line 13 what is really happening?
#include <iostream>
#include <string.h>
using namespace std;
int main() {
int num , n , n1 , k , x = 0;
cout << "Enter the no. of vertices: " ;
cin >> n;
char StorageArr[n];
char arr[k];
for(k = 0; k< n ; k++){
cout<< "arr[" << k << "] : ";
cin >> arr[k] ;
StorageArr[n] = arr[k];
}
int len = sizeof(StorageArr)/ sizeof(StorageArr[0]);
cout << "The length of the array is : " << len << endl;
for(int i= 0 ; i< len ; i++){
for(int j = 0; j< len ; j++ ){
cout<<"\n\t" <<"Element at " << StorageArr[i] << StorageArr[j] << ": " ;
cin >> num;
if(i==j && num == 0){
x++;
}
}
}
if(x == len){
cout<<"This is a complete graph...";
}else{
cout<< "This is not a complete graph..." ;
}
return 0;
}
好的,那么 StorageArr[n] = arr[k] 是如何工作的。 我的意思是,如果我们分配 n = 5 那么 arr[k] 的所有值都将分配给相同的位置 StorageArr[5] 或者 arr[k] 的值将存储在 StorageArr 中,就像第 0 个位置上的第一个一样然后在第一个位置,然后一直到第四个......
如果n == 5
那么
StorageArr[n] = arr[k];
将始终将arr[k]
分配给StorageArr[5]
。 这就是代码所说的,这就是它会做的事情(在一个工作程序中)。 我不确定您是从哪里想到它可能会分配给 StorageArr[0] 然后分配给 StorageArr[1] 等等。
你的代码有很多错误,仅举一个,看看上面的代码, k
的值是多少? 在任何时候你都没有给它一个价值。 但是你到处都在使用它的价值。 这意味着你的整个程序都有未定义的行为,试图弄清楚它会做什么是毫无意义的。
修复错误,您的程序将以更可预测的方式运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.