个数,要求输出其中值最大的元素和该数是第几个数。"/>
C //例 7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。
C程序设计 (第四版) 谭浩强 例 7.9
例 7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法1:使用数组
#include <stdio.h>
#include <stdlib.h>#define N 10void max(int num[], int n){int max = num[0];int s;for(int i = 0; i < n; i++){if(num[i] > max){max = num[i];s = i + 1;}}printf("The largest number is %d, it is the %dth number.\n", max, s);
}int main(){int num[N];printf("Enter %d numbers: ", N);for(int i = 0; i < N; i++){scanf("%d", &num[i]);}max(num, N);system("pause");return 0;
}
方法2:使用指针、动态分配内存
#include <stdio.h>
#include <stdlib.h>#define N 10//初始化数组
void initialArr(int **num, int n, int **s){*num = (int*)malloc(n * sizeof(int));*s = (int*)malloc(sizeof(int));
}//输入数组
void inputArr(int *num, int n){printf("Enter %d numbers: ", n);for(int i = 0; i < n; i++){scanf("%d", &num[i]);}
}//最大值函数,同时通过指针返回最大值的个数
int max(int *num, int n, int *s){int max = num[0];for(int i = 0; i < n; i++){if(num[i] > max){max = num[i];*s = i + 1;}}return max;
}//释放分配内存
void freeArr(int **num, int **s){free(*num);free(*s);
}int main(){int *num = NULL;int *s = NULL;initialArr(&num, N, &s);inputArr(num, N);printf("The largest number is %d, ", max(num, N, s));printf("it is the %dth number.\n", *s);freeArr(&num, &s);system("pause");return 0;
}
更多推荐
C //例 7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。
发布评论