c语言数组求最大值和最小值,c语言求数组中最大值和最小值及其下标
c语言数组求最大值和最小值,c语言求数组中最大值和最小值及其下标详细介绍
本文目录一览: c语言如何求最大或最小
C程序代码如下:
解析:
1、首先定义a,b,c,max四个整型变量,并输入a,b,c三个数;
2、定义最大值为a,if循环体还是对b和c进行循环;
3、根据循环体判断最大的值,最后输出结果。
扩展资料C语言的基本构成
数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
常量与变量
常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
字符串
C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件
。
文件输入/输出
在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件
;中。
参考资料来源:百度百科—C语言
C语言,求数组最大最小值
求数组中的最大值和最小值,一般使用假设法,即假设数组的第1个元素为最大值,同时也是最小值,然后遍历数组,找到最大值和最小值。示例如下:#include
int main() { int a[] = {1,2,3,4,5,6,7,8,9,10};int max, min;max = min = a[0]; //假设第1个元素即是最大值也是最小值。int max_pos = 0, min_pos = 0;//遍历数组,找出数组a中的最大数和最小数for (int inx=0; inx!=sizeof(a) / sizeof(int); ++inx) {if (a[inx]> max) max = a[inx], max_pos=inx;else if (a[inx] < min) min = a[inx], min_pos=inx;}printf("最大数:%d\t最小数:%d\n", max ,min );return 0;}
C语言求输入的一维数组中8个数最大最小值?
#include
#define ARRAY_SIZE 8
int main()
{
int arr[ARRAY_SIZE];
int i, min, max;
// 从用户输入中读取数组元素
for (i = 0; i < ARRAY_SIZE; i++) {
printf("请输入第 %d 个整数:", i + 1);
scanf("%d", &arr[i]);
}
// 查找最小值和最大值
min = max = arr[0];
for (i = 1; i < ARRAY_SIZE; i++) {
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
}
// 输出结果
printf("最小值是 %d,最大值是 %d\n", min, max);
return 0;
}
#include
int main() {
int arr[8];
int i;
int max, min;
printf("请输入8个数,每个数用空格隔开:\n");
for (i = 0; i < 8; i++) {
scanf("%d", &arr[i]);
}
max = arr[0];
min = arr[0];
for (i = 1; i < 8; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
printf("输入的8个数中,最大值为%d,最小值为%d。\n", max, min);
return 0;
}
这段代码中,首先通过scanf函数读入8个数到数组arr中,然后使用for循环遍历数组中的每一个元素,查找出最大值和最小值。最后使用printf函数输出最大值和最小值。
c语言数组找最大值和最小值
用这个自定义函数,参数 数组名,元素个数,最大,最小。返回最大,最小
void get_max_and_min(int *a, int n, int *max, int *min);
若不是整型,你可以把 int 改 float, 例如:
void get_max_and_min(float *a, int n, float *max, float *min);
程序例子:
#include
#include
void get_max_and_min(int *a, int n, int *max, int *min){
int i;
*max = a[0]; *min = a[0];
for (i=0;i
*max) *max = a[i];
for (i=0;i
<n;i++) if (a[i]< *min) *min="a[i];
};
int main(){
int x[10]={10,25,6,15,87,3,26,31,85,7 };
int n=10, max, min;
get_max_and_min(x,n,&max,&min);
printf("max=%d min=%d\n",max,min);
return 0;
}
用c语言编写求数组元素最大值和最小值!谢谢各位大佬
#include
int main(){int i,n,max=-99999,min=99999,a[100];scanf("%d",&n);for(i=0;i
max)max=a[i]; if(a[i]
<min)min=a[i];}printf("max=%d\nmin=%d\n",max,min);return 0;}
1、apply方式,借用Math中的max/min方法实现。
2、得到输出结果。
3、sort方式:数组从小到大排序,数组第一项就是最小值,最后一项就是最大值 。
4、得到输出的结果。
5、假设当前数组中的第一个值是最大值,然后拿这个值和后面的项逐一进行比较,如果后面某一个值比假设的还要大,说明假设错了,我们把假设的值进行替换,依次类推。
6、首先不要管其他的,先把我们最后要执行的代码都变为字符串,然后把数组中的每一项的值分别的拼接到这个字符串中。
7、得到最终的结果。
输入一个一堆数组,寻找并输出数组中的最大值和最小值c语言怎么编?
C语言编程题定义 “int a[10]”,从键盘输入10个元素,求最大 最小值及所在元素的下标
#include
int main()
{int i,imax=0,imin=0,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
if(a[i]>a[imax])imax=i;
else if(a[i]
<a[imin])imin=i;
printf("最大值a[%d]=%d\n",imax,a[imax]);
printf("最小值a[%d]=%d\n",,imin,a[imin]);
return 0;
}
</a[imin])imin=i;
c语言求数组中最大值和最小值及其下标
#include
main(){int a[10],i,j,k;for (i=0;i<10;++i)scanf("%d",&a[i]);for(i=j=k=0;i<10;i++) //找出最大数、最小数在数组中对应的下标 if(a[i]>a[j])j=i; else if(a[i]
<a[k])k=i;printf("%d %d\n",a[j],j);printf("%d %d\n",a[k],k);}
a[i]=c[i]; 要改成 c[i]=a[i];
思路:假定一个数为最大值,如果有个数比假定的最大值还大,那么该数就为最大值。
最小值同理。
使用for循环。
*/
public class MaxMin{
public static void main(String[]args){
int[]array={13,56,45,48,26,55,7,3,9,468,4589,76,4,3,18};//声明数组并赋值
int i=0;
int max=array[0];//最大值
int min=array[0];//最大值
int indexMax=-1;//最大值索引
int indexMin=-1;//最小值索引
//使用for循环判断
for(i=0;i
<array.length;i++){
if(array
>max){
max=array;
indexMax=i;
}
if(array
<min){
min=array
;
indexMin=i;
}
}
System.out.println("最大值为:"+max+",索引为:"+indexMax);
System.out.println("最小值为:"+min+",索引为:"+indexMin);
}
}
扩展资料:system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()传递,但要注意的是输入斜线时要输入两个,以名C语言当作转义字符处理。
</min){
</array.length;i++){
C语言编程:任意输入10个整数放入数组中,然后求其中的最大值和最小值
#include "stdio.h"
//从键盘输入10个数存入一维数组,求这10个数中的最大值和最小值并输出
int main()
{
int i;
float max,min,num[10];
printf("请输入10个数,每输入一个数按回车键结束:\n");
for(i=0;i<10;i++){
scanf("%f",&num[i]);
}
max=min=num[0];
for(i=1;i<10;i++){
if(max
<num[i])
max=num[i];
else if(min>num[i])
min=num[i];
}
printf("最大为:%f\n最小为:%f\n",max,min);
return 0;
}
扩展资料:
使用其他方法得到10个数中的最大值与最小值:
#include
int main()
{
int arr[10] = {0};
int i = 0;
int max = 0;
int min = 0;
printf("请输入10个整数:");
for (i = 0; i < sizeof(arr)/ sizeof(arr[0]); i++){
scanf("%d",&arr[i]);
}
max = arr[0];
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++){
if (max < arr[i]){
max = arr[i];
}
}
min = arr[0];
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++){
if (min > arr[i])
{
min = arr[i];
}
}
printf("max=%d\n", max);
printf("min=%d\n", min);
return 0;
}
程序:
#include
int main()
{
int arr[10]={0};
int i=0;
int max=0;
int min=0;
printf("请输入10个整数:");
for(i=0;i
<sizeof(arr) sizeof(arr[0]);i++)
{
scanf("%d",&arr
);
}
max=arr[0];
for(i=0;i
<sizeof(arr) sizeof(arr[0]);i++)
{
if(max
<arr
)
{
max=arr
;
}
}
min=arr[0];
for(i=0;i
<sizeof(arr) sizeof(arr[0]);i++)
{
if(min>arr
)
{
min=arr;
}
}
printf("max=%d\n",max);
printf("min=%d\n",min);
return 0;
}
结果:
请输入10个整数:1 2 3 56 23 6 767 32 11 567
max=767
min=1
请按任意键继续...
扩展资料:方法二、
#include"stdio.h"
//从键盘输入10个数存入一维数组,求这10个数中的最大值和最小值并输出
int main()
{
int i;
float max,min,num[10];
printf("请输入10个数,每输入一个数按回车键结束:\n");
for(i=0;i<10;i++)
{
scanf("%f",&num);
}
max=min=num[0];
for(i=1;i<10;i++)
{
if(max
<num
)
max=num
;
else if(min>num)
min=num;
}
printf("最大为:%f\n最小为:%f\n",max,min);
return 0;
}
#include
#define LEN 100 /*数组长度*/#define elemType int /*元素类型*//*录入数组*/void inputArr (elemType arr[], int len) { int i; for (i=0; i
<len; i++) scanf ("%d",&arr[i]); putchar ('\n');} *打印数组* void printarr (elemtype arr[], int len) { i; for (i="0;" i
*max) { /*求最大值、元素编号*/ *max = arr[i]; *maxIndex = i; } if (arr[i]<*min) { /*求最小值、元素编号*/ *min = arr[i]; *minIndex = i; } }} int main (void) { elemType arr[LEN]; elemType max,min,maxIndex,minIndex; int len,i; len = 10; /*指定数组元素个数*/ printf ("请输入包含%d个元素的整型数组:\n",len); inputArr (arr,len); puts ("================================================================\n"); calcMaxAndMinEtc (arr, len, &max, &min, &maxIndex, &minIndex); puts ("此前输入数组:"); printArr (arr, len); putchar ('\n'); printf ("最大值:Max = arr[%d] = %d\n",maxIndex,max); printf ("最小值:Min = arr[%d] = %d\n",minIndex,min); putchar ('\n'); fflush (stdin); /*清除缓冲区*/ getch (); /*屏幕暂留*/ return 0;}运行结果
# include
int main()
{int i,max,min,a[10];
scanf("%d",&a[0]); //读入首个元素的值
max=min=a[0]; //只有一个元素时,它既是最大值,又是最小值
for(i=1;i<10;i++)
{scanf("%d",&a[i]); //继续读入其余的9个数
if(a[i]>max)max=a[i]; //打擂台,继续比较,得出到当前为止的最大与最小值
else if(a[i]
<min)min=a[i];
}
printf("最大值=%d\n最小值=%d\n",max,min); //输出结果
return 0;
}
main()
{
int max;
int min;
int arr[10];
for(int i=0;i<10;i++)//输入10个整数
{
printf("请输入第%d个整数",i+1);
scanf("%d",&arr[i]);
}
max=min=arr[0];//假设第一个数就是最大最小的数
for(int j=1;j<10;j++)
{
if(arr[j]>max)//如果下个数比当前找到的最大数还要大
{
max=arr[j];//那么就把这个数设置成最大的数
}
if(arr[j]
<min) 如果下个数比当前找到的最小数还要小
{
min=arr[j];//那么就把这个数设置成最小数
}
}
printf("最大数%d,最小数%d",max,min);
}
我楼下那个家伙还用了排序,时间上不实际,因为题目要求只要求最大最小数,而且不要求其他操作。所以我的比较适合
如果要速度更快,那么就是减少循环的产生。
1、任意输入10个整数放入数组中求其中的最大值和最小值的源代码如下:
#include
void main(){
int array[10];//用来存储输入的数据
int max;//用来存放最大的数
int i;//用于循环
for(i=0;i<10;i++) //一次输入10个数
{
//输入一个数并按回车键
scanf("%d",&a[i]);
}
max=a[0];//先假设最大值为第一个元素
for(i=1;i<10;i++)
{
if(a[i]>max) //如果发现有比max大的数,修改max的值
max=a[i];
}
printf("是个数中最大的数是:\n");
printf("%d",max);
}
2、任意输入10个整数放入数组中求其中的最小值的源代码如下:
#include
main()
{
int i,a[10],min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
min=a[0];
for(i=1;i<10;i++)
if(a[i]
<min)
min=a[i];
printf("%d\n",min);
}
扩展资料
任意输入10个整数放入数组中求其中的最小值的源代码方法二如下:
#include
int main(){
//首先读入一个数作为最小值
int min;
scanf( "%d", &min );
//接下来读入九个数更新最小值
int i;
for( i = 1 ; i <= 9 ; ++i )
{
int num;
scanf( "%d", &num );
if( num < min )
{
min = num;
}
}
printf( "最小值为:%d\n", min );
return 0;
}
</min)
</min)min=a[i];
</num
</arr
</num[i])
C语言 查找一个一维数组中最大值和最小值的位置,并交换最大值和最
1、打开visual studio,创建一个控制台应用程序,在Main方法中,定义一个整型数组,用于演示数组的最大值、最小值,以及交换他们的位置。
2、在Main方法中,定义四个变量,用于暂存最大、最小值,以及他们的序号。
3、通过for循环,找出数组中,最大的值和序号、最小的值和序号,存入上面定义的四个变量中。
4、最终通过数组的下标给最大、最小值重新赋值,就将他们交换位置了。在原来最小值的下标位置赋值找出来的最大值。原来最大值得下标位置赋值找出来的最小值。
5、在交换完成值之后,使用循环输出数组的值,从结果可以看出,这两个位置的值已经交换了位置。