第1题(教材第10章“编程练习”的第3题):
#include <stdio.h>
#define N 110
int a[N];
int main() {
int maxx = -10000;
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
if (a[i] > maxx)maxx = a[i];
}
printf("%d\n", maxx);
}
第2题(教材第10章“编程练习”的第4题):
#include <stdio.h>
#define N 110
double a[N];
int main() {
double maxx = -10000;
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%lf", &a[i]);
if (a[i] > maxx)maxx = a[i];
}
printf("%f\n", maxx);
}
第3题(教材第10章“编程练习”的第10题):
#include <stdio.h>
#define N 110
int a[N];
int b[N];
int c[N];
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (int i = 0; i < n; i++)
{
scanf("%d", &b[i]);
c[i] = a[i] + b[i];
}
for (int i = 0; i < n; i++)
{
printf("%d ", c[i]);
}
}
第4题(教材第10章“编程练习”的第13题):
#include<stdio.h>
double a[3][5];
int average(double a[][5], int index)
{
double s = 0;
for (int i = 0; i < 5; i++)
{
s += a[index][i];
}
return s;
}
int main() {
double maxx = -10000;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
scanf("%lf", &a[i][j]);
if (maxx < a[i][j])maxx = a[i][j];
}
}
int s = 0;
for (int i = 0; i < 3; i++)
{
double x = average(a, i);
printf("%f\n", x/5.0);
s = s + x;
}
printf("%f\n", s / 15.0);
printf("%f\n", maxx);
}
第5题( 教材第12章“编程练习”的第5题):
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
const int N = 110;
int a[N];
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void Build_max_heap(int a[], int start, int end)
{
int cur = start;
int l = 2 * cur + 1;
for (; l <= end; cur = l, l = 2 * cur)
{
if (l < end&& a[l] < a[l + 1])l++;
if (a[l] > a[cur])swap(&a[l], &a[cur]);
else break;
}
}
void HeapSort(int a[], int size)
{
for (int i = size / 2; i >= 0; i--)
{
Build_max_heap(a, i, size - 1);
}
for (int i = size - 1; i > 0; i--)
{
swap(&a[0], &a[i]);
Build_max_heap(a, 0, i - 1);
}
}
int main()
{
srand(time(0));
for (int i = 0; i < 100; i++)
{
int x = rand() % 10 + 1;
a[i] = x;
}
HeapSort(a, 100);
for (int i = 0; i < 100; i++)
{
printf("%d ", a[i]);
}
}