自己学习过程中编写的,仅供参考,如有错误,欢迎评论区指正!
01
#include <stdio.h>
#define MONTHS 12
#define YEARS 5
int main(void)
{
const float rain[YEARS][MONTHS] =
{
{
4.3,4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6},
{
8.5,8.2,1.2,1.6,2.4,0.0,5.2,0.9,0.3,0.9,1.4,7.3},
{
9.1,8.5,6.7,4.3,2.1,0.8,0.2,0.2,1.1,2.3,6.1,8.4},
{
7.2,9.9,8.4,3.3,1.2,0.8,0.4,0.0,0.6,1.7,4.3,6.2},
{
7.6,5.6,3.8,2.8,3.8,0.2,0.0,0.0,0.0,1.3,2.6,5.2}
};
int year , month;
float subtot, total;
printf(" YEAR RAINFALL (inches)\n");
for (year = 0, total = 0; year < YEARS; year++)
{
//每年各月的降水量总和
for (month = 0, subtot = 0; month < MONTHS; month++)
{
subtot += *(*(rain+year)+month);
}
printf("%5d %15.1f\n", 2010 + year, subtot);
total += subtot; //5年总降水量
}
printf("\nThe yearly average is %.1f inches.\n\n", total / YEARS);
printf("MONTHLY AVERAGR:\n\n");
printf(" Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\n");
for (month = 0; month < MONTHS; month++)
{
//每个月,5年的总降水量
for (year = 0, subtot = 0; year < YEARS; year++)
{
subtot += *(*(rain + year) + month);
}
printf("%4.1f ", subtot / YEARS);
}
printf("\n");
return 0;
}
02
#include <stdio.h>
void copy_arr(double* target1, double* source, int n);
void copy_ptr(double* target1, double* source, int n);
void copy_ptrs(double* target1, double* source, double* n);
int main(void)
{
double source[5] = {
1.1,2.2,3.3,4.4,5.5 };
double target1[5];
double target2[5];
double target3[5];
copy_arr(target1, source, 5);
copy_ptr(target2, source, 5);
copy_ptrs(target3, source, source + 5);
printf("source:");
for (int i = 0; i < 5; i++)
{
printf("%g ", source[i]);
}
printf("\ntarget1:");
for (int i = 0; i < 5; i++)
{
printf("%g ", target1[i]);
}
printf("\ntarget2:");
for (int i = 0; i < 5; i++)
{
printf("%g ", target2[i]);
}
printf("\ntarget3:");
for (int i = 0; i < 5; i++)
{
printf("%g ", target3[i]);
}
return 0;
}
void copy_arr(double* tar, double* src, int n)
{
for (int i = 0; i < n; i++)
{
tar[i] = src[i];
}
}
void copy_ptr(double* tar, double* src, int n)
{
for (int i = 0; i < n; i++)
{
*(tar + i) = *(src + i);
}
}
void copy_ptrs(double* tar, double* src, double* n)
{
;
for (int i = 0; i < n - src; i++)
{
*(tar + i) = *(src + i);
}
}
03
#include <stdio.h>
#define LEN 5
int fin_max(int*, int n);
int main(void)
{
int num[LEN], m;
printf("请输入%d个数:", LEN);
for (int i = 0; i < LEN; i++)
{
scanf("%d", (num + i));
}
printf("\n数组为:");
for (int i = 0; i < LEN; i++)
{
printf("%d ", *(num + i));
}
m = fin_max(num, LEN);
printf("\n数组中的最大值为:%d\n", m);
return 0;
}
i