[問題]數值無法放入陣列

作者: samsandy (阿母跑很快)   2019-11-22 20:21:28
開發平台(Platform): (Ex: Win10, Linux, ...)
OS
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Xcode
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
為什麼輸入n,m無法讀入陣列
餵入的資料(Input):
18 6
預期的正確結果(Expected Output):
18 things is taken 6 at a time is 18564 exactly
錯誤結果(Wrong Output):
18564 things is taken 18564 at a time is 18564 exactly
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
//
// main.cpp
// sam
//
// Created by sam on 2019/9/3.
// Copyright ꤠ2019 sam. All rights reserved.
//
#include<iostream>
#include <stdio.h>
using namespace std;
long int lev(long int num){
long int a=1;
for(int i=1;i<=num;i++){
a=a*i;
}
return a;
}
int main(){
int i=0,count=0;
int n,m,k[i],l[i];
long int s[i];
long int num=1;
while(cin>>n>>m){
if(n==0||m==0){
break;
}
k[i]=n;
l[i]=m;
if(m<(n/2)){
m=n-m;
}
for(long int i=n;i>m;i
作者: Lipraxde (Lipraxde)   2019-11-22 20:34:00
你在宣告陣列的時候 i = 0,然後輸出是不是有一個要是k[i] 啊?
作者: zo6596001 (超帥肥宅)   2019-11-23 00:45:00
int i =0; 然後下一行又 k[i];仔細看一下 i 好像又重複宣告...
作者: LPH66 (-6.2598534e+18f)   2019-11-23 02:23:00
拿變數宣告陣列大小時變數的值會使用當下的值而不會隨著後續更新而更新比較簡單的解法是估計最大可能陣列大小先行留空
作者: zo6596001 (超帥肥宅)   2019-11-23 08:53:00
C語言記憶體的大小全部都要自己宣告k[i]的意思其實是 宣告0個記憶體位置給k至於為什麼編得過、跑得了,就要去看產生的指令碼了
作者: Lipraxde (Lipraxde)   2019-11-23 13:59:00
num 這個變數看起來也怪怪的,是不是該放在 while 裡?

Links booklink

Contact Us: admin [ a t ] ucptt.com