|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 bin554385863 于 2019-5-24 03:10 编辑
- /*定义一个含有30个偶数的数组并安顺每五个元素求一次平均值放到另一个数组中*/
- #include <stdio.h>
- #define N 30
- void main()
- {
- int arr[N], barr[N / 5];
- printf("原数组arr\n");
- for (size_t i = 0; i < N; i++)
- {
- arr[i] = 2 * i;
- printf("arr[%d] = %d\n", i, arr[i]);
- }
- printf("\n");
- printf("每五个元素算其平均值并放在数组Barr中\n");
- for (size_t j = 0; j < (N / 5); j++)
- {
- for (size_t i = 5 * j; i < 5 * (j + 1); i++)
- {
- barr[i] = (arr[i] + arr[i+1] + arr[i + 2] + arr[i + 3] + arr[i + 4])/5;
- }
- printf("barr[%d] = %3d ", j, barr[j]);
- }
- printf("\n");
- }
复制代码
======================================================================
E:\Administrator\Documents\My C>cmd /C "c:\Users\Administrator\.vscode\extensions\ms-vscode.cpptools-0.23.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-sviflrg3.3no --stdout=Microsoft-MIEngine-Out-jjmld3tj.toa --stderr=Microsoft-MIEngine-Error-glz3n5lo.s1p --pid=Microsoft-MIEngine-Pid-ohdis3en.u0s --dbgExe=E:\MinGW\bin\gdb.exe --interpreter=mi "
原数组arr
arr[0] = 0
arr[1] = 2
arr[2] = 4
arr[3] = 6
arr[4] = 8
arr[5] = 10
arr[6] = 12
arr[7] = 14
arr[8] = 16
arr[9] = 18
arr[10] = 20
arr[11] = 22
arr[12] = 24
arr[13] = 26
arr[14] = 28
arr[15] = 30
arr[16] = 32
arr[17] = 34
arr[18] = 36
arr[19] = 38
arr[20] = 40
arr[21] = 42
arr[22] = 44
arr[23] = 46
arr[24] = 48
arr[25] = 50
arr[26] = 52
arr[27] = 54
arr[28] = 56
arr[29] = 58
每五个元素算其平均值并放在数组Barr中
barr[0] = 4 barr[1] = 6 barr[2] = 8 barr[3] = 10 barr[4] = 12 barr[5] = 14
E:\Administrator\Documents\My C>
=============================================================================
很奇怪,为什么最后的数组不正确,
求平均数的时候不需要两个循环,一次循环就可以了。
修改的代码如下:
- #include <stdio.h>
- #define N 30
- int main()
- {
- int arr[N], barr[N / 5];
- printf("原数组arr\n");
- for (size_t i = 0; i < N; i++)
- {
- arr[i] = 2 * i;
- printf("arr[%d] = %d\n", i, arr[i]);
- }
- printf("\n");
- printf("每五个元素算其平均值并放在数组Barr中\n");
- for (size_t j = 0; j < (N / 5); j++)
- {
- // 在这里不需要第二个循环了
- barr[j] = (arr[j*5] + arr[j*5+1] + arr[j*5 + 2] + arr[j*5 + 3] + arr[j*5 + 4])/5;
- printf("barr[%d] = %d ", j, barr[j]);
- }
- printf("\n");
-
- return 0;
- }
复制代码
|
|