[英]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.