私はMCVの例にコードを作っ:
#include <stdio.h>
// function
int multiply_bytwo(int n[5][5])
{
int total_times = 0;
for (int row = 0; row < 5; row++)
{
printf("\n");
for (int col = 0; col < 5; col++)
{
n[row][col] = n[row][col] * 2;
printf("%d\n", n[row][col]);
}
return total_times;
}
}
int main(int argc, char *argv[])
{
int numbers [5][5] = { { 1,3,5,7,9},{-2,-4,-6, -8, -10},{3,3,3,3,3},{ 55, 77, 99, 22, 33 },{ -15, -250, -350, -450, -550 } };
multiply_bytwo(numbers);
}
も、それらが生成されたとき、これは計算値を出力している追加printf()
通話を注意してください。
出力:
$ gcc temp.c -std=c99 && ./a.exe
2 6 10 14 18
は、我々はここで何を見ていますか?最初の行に2を掛けて({1,3,5,7,9}
- >{2,6,10,14,18}
)、関数が終了しています。
return文をループから外したときの結果はどうなりますか?
コード:
int multiply_bytwo(int n[5][5])
{
int total_times = 0;
for (int row = 0; row < 5; row++){
printf("\n");
for (int col = 0; col < 5; col++){
n[row][col] = n[row][col] * 2;
printf("%d ", n[row][col]);
}
}
return total_times;
}
結果:
2 6 10 14 18
-4 -8 -12 -16 -20
6 6 6 6 6
110 154 198 44 66
-30 -500 -700 -900 -1100
私は手動で出力を揃えるの自由を取ったが、あなたが望むよう数字が正確です。
*4
がどこから届いたのか分かりません。
また、実際には何も返しません。total_times = 0
を最初に設定し、決して変更しないでください。乗算を実行するときに、おそらくそれを増やすことを意味します。
'return total_times;'はあなたのループを早めに退屈させます。 –
あなたの質問を編集し、[最小、完全、かつ確認可能な例](https://stackoverflow.com/help/mcve)を教えてください。 – Akira
***しかしそれは代わりに4で倍数*** ...どのようにそれを知っていますか? –