Re: [語法] 為什麼我都無法順利執行(一瞬間就不見了)

看板C_and_CPP (C/C++)作者 (吃屎近乎勇)時間16年前 (2009/09/22 22:50), 編輯推噓5(5012)
留言17則, 7人參與, 最新討論串2/3 (看更多)
#include <stdio.h> #include <stdlib.h> int main() { int *A,*B; int i,n,C; printf("Please give me a number:\n"); scanf("%d",&n); A=malloc(sizeof(int)*n); B=malloc(sizeof(int)*n); for(i=0;i<10;i++) { A[i]=B[i]=1; } C=vec_inner(A,B,n); printf("%d",C); free(A); free(B); system("pause"); return 0; } int vec_inner(int *A,int *B,int n) { int i,C; for(i=0;i<10;i++) { C=C+A[i]*B[i]; } return C; } 請問一下 我看了大家的意見 改成了這樣 可是我還是不能用耶 我想依定還有錯... 但是我想破頭都找不到了 可以給我一點提示嗎ˊˋ 感謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.198.64

09/22 22:51, , 1F
排版還要再多加油
09/22 22:51, 1F

09/22 22:51, , 2F
最明顯的問題 迴圈裡的10是怎麼冒出來的?
09/22 22:51, 2F

09/22 22:52, , 3F
C要初始值
09/22 22:52, 3F

09/22 23:14, , 4F
請問可以說清楚一點嘛...抱歉我自修剛學...不太懂耶..
09/22 23:14, 4F

09/22 23:15, , 5F
for迴圈的終止條件應該是 i<n 而不是 i<10 吧?
09/22 23:15, 5F

09/22 23:16, , 6F
另外一點是 vec_inner裡面的int C應該要給初始值(給0)
09/22 23:16, 6F

09/22 23:20, , 7F
否則就會變成 C = 不知道是什麼 + A[i]*B[i]
09/22 23:20, 7F

09/22 23:38, , 8F
我覺得先學會把問題講清楚~_~ 什麼叫不能用?? 程式不能
09/22 23:38, 8F

09/22 23:38, , 9F
build/有error?? 執行結果不對/不如預期(那你預期又是什
09/22 23:38, 9F

09/22 23:40, , 10F
麼) 執行過程有錯或者當掉??
09/22 23:40, 10F

09/22 23:41, , 11F
話說C沒有給初值這件事小弟我在上一篇文就說過了Orz
09/22 23:41, 11F

09/22 23:43, , 12F
除了5F d大說的兩件事以外, function在main後面的話,
09/22 23:43, 12F

09/22 23:44, , 13F
可以要加一行 int vec_inner(int *A,int *B,int n);
09/22 23:44, 13F

09/22 23:44, , 14F
放在main()前面, 不然compile時應該會找不到func.
09/22 23:44, 14F

09/23 01:20, , 15F
恩 謝謝^^
09/23 01:20, 15F

09/23 01:21, , 16F
C的初始值是直接C=0嗎?
09/23 01:21, 16F

09/23 07:58, , 17F
to樓上 要看在那宣告
09/23 07:58, 17F
文章代碼(AID): #1AkEGWbv (C_and_CPP)
文章代碼(AID): #1AkEGWbv (C_and_CPP)