用c语言 任意输入n个数,输出其中最大数和最小数,并输出它们在序列中的位置

作者&投稿:藏民 (若有异议请与网页底部的电邮联系)
用C语言写程序 , 输入N个数字,打印其中的最大数和最小数的位置,如果有相同的数字,输出最早出现的那一个~

#include
int main()
{
int n = 0;
int i = 0, buf, min, max, min_index, max_index;

scanf("%d", &n);
while (i < n)
{
scanf("%d", &buf);

if (i == 0)
{
min_index = max_index = i;
min = max = buf;
}
else
{
if (buf < min)
{
min = buf;
min_index = i;
}
else if (buf > max)
{
max = buf;
max_index = i;
}
}

i++;
}

printf("%d %d
", max_index + 1, min_index + 1);

return 0;
}

// 运行结果
// 输入:
5
2 1 1 3 3
// 输出:
4 2

好的,我的方法是先求出最大数我最小数,然后分别查找它们所在的位置,代码如下: #include int main(void) { int *arr,i=0,j,max,min,max_p,min_p; char stop; printf("input some numbers:"); while(stop=getchar() != '
') { scanf("%d",&arr[i++]); } for(j=0;j

#include<stdio.h>

#include<stdlib.h>

intmain()

{

inti,j,n,max_pos=0,min_pos=0;

int*a;

printf("Pleaseinputmaximumnumber:");

scanf("%d",&n);

a=(int*)malloc(sizeof(int)*n);

printf("Pleaseinput%dnumbersnow:
",n);

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

if(a[max_pos]<a[i])

max_pos=i;

if(a[min_pos]>a[i])

min_pos=i;

}

printf("Themaximumnumberis%d,itspositionis%d
",a[max_pos],max_pos+1);//从第1开始算,所以第0要+1

printf("Theminimumnumberis%d,itspositionis%d
",a[min_pos],min_pos+1);//从第1开始算,所以第0要+1

free(a);

return0;

}

扩展资料

C语言判断三个数中的最大数:

#include<stdio.h>

intmain()

{

doublen1,n2,n3;

printf("请输入三个数,以空格分隔:");

scanf("%lf%lf%lf",&n1,&n2,&n3);

if(n1>=n2&&n1>=n3)

printf("%.2f是最大数。",n1);

if(n2>=n1&&n2>=n3)

printf("%.2f是最大数。",n2);

if(n3>=n1&&n3>=n2)

printf("%.2f是最大数。",n3);

return0;

}



#include<stdio.h>
int main(void)
{
int num[50];
int max,min;
int i;
int n,nn,mm;
printf("请输入要输入多少个数:\n");
scanf("%d",&n);
printf("请输入%d多少个数:\n",n);
for(i = 0; i<n; i++)
{
scanf("%d",&num[i]);
}
max=min=num[0];
for(i = 1; i < n; i++)
{
if(num[i]<min)
{
min = num[i];
nn = i;
}
else if(num[i]>max)
{
max = num[i];
mm = i;
}
}
printf("最大值是:%d 它在序列中的位置是第%d个元素\n",max,mm+1);
printf("最小值是:%d 它在序列中的位置是第%d个元素\n",min,nn+1);
return 0;
}

#include<stdio.h>
Main()
{
int x,max;
printf(“输入一批非零整数,以0为结束符”);
scanf(“%d”,&x);
max = x; min=x;/*现将第一个数赋值给变量max,min*/
for(i=2; x!=0 ;i++)
{
scanf(“%d”,&x);
if(max<x)
max=x; /*输入值比变量max大,用当前值替换max*/
maxindex=i;
}
if(min>x)
min=x; /*输入值比变量max大,用当前值替换max*/
minindex=i;
}

printf(“max=%d\n 在数组的第%d位\n”,max,maxindex); /*输出最大值*/
printf(“max=%d\n 在数组的第%d位\n”,min,minindex); /*输出最小值*/

}

#include<stdio.h>
int main()
{
int a[100];
int n,max,maxi,min,mini,i;
printf("请输入数组的个数n= ");
scanf("%d",&n);
printf("输入数组:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=a[0];
maxi=1;
min=a[0];
mini=1;
for(i=0;i<n;i++)
{
if(max<a[i])
{
max=a[i];
maxi=i+1;
}
if(min>a[i])
{
min=a[i];
mini=i+1;
}
}
printf("最大数是:%d,位置:%d\n",max,maxi);
printf("最小数是:%d,位置:%d\n",min,mini);
return 0;
}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFSIZE 4096
struct result {
    int max;
    int max_pos;
    int min;
    int min_pos;
};
int isnum(char *s){
    if(s == NULL) {
        return 0;
    }   
    char *s1 = s;
    while(*s1 != '\0') {
        if(*s1 != '
' && !isdigit(*s1)) {
            return 0;
        }   
        s1++;
    }   
    return 1;
}
void find(char *s, struct result *ret) {
    if(ret == NULL) {
        fputs("require argument <result *>,not NULL
",stderr);
        return;
    }   
    
    char *sep=" ";
    char *next = strtok(s,sep);
    int inext,pos=1,f=0;
    ret->max=0;
    ret->max_pos=-1;
    ret->min=0;
    ret->min_pos=-1;
    
    while(next != NULL) {
        if( isnum(next) ) { 
            inext = atoi(next);
            if(!f) {
                ret->max=inext;
                ret->max_pos=pos;
                ret->min=inext;
                ret->min_pos=pos;
                f=1;
            }else{
                if(ret->max < inext) {
                    ret->max = inext;
                    ret->max_pos = pos;
                }   
                if(ret->min > inext) {
                    ret->min = inext;
                    ret->min_pos = pos;
                }
            }
        }
        pos++;
        next = strtok(NULL,sep);
    }
}
int main(void) {
    struct result ret;
    char buf[BUFSIZE];
    printf("input any number sepereted by 'space' or 'tab'
");
    fgets(buf,sizeof(buf),stdin);
    find(buf,&ret);
    if(ret.max_pos < 0){
        printf("your input is incorrect
");
    }else{
        printf("max=%d (pos %d),min=%d (pos %d)
",ret.max,ret.max_pos,ret.min,ret.min_pos);
    }
    exit(0);
}



斗门区13680915671: 用c语言 任意输入n个数,输出其中最大数和最小数,并输出它们在序列中的位置 -
贲花克拉: #includeint main() { int a[100]; int n,max,maxi,min,mini,i; printf("请输入数组的个数n= "); scanf("%d",&n); printf("输入数组:\n"); for(i=0;ia[i]) { min=a[i]; mini=i+1; } } printf("最大数是:%d,位置:%d\n",max,maxi); printf("最小数是:%d,位置:%d\n",min,mini); return 0; }

斗门区13680915671: C语言:::::对于输入的任意n个整数,输出其中的最大和最小元素. -
贲花克拉: C语言实现如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18#include <stdio.h> #include <stdlib.h> voidmain() {intmax,min,n,number,i;scanf("%d",&n);if(n<=0) exit(0);scanf("%d",&number);max=number;min=number;for(i=1;i<n;i++)...

斗门区13680915671: C语言,在键盘上输入n个数,输出n的值 -
贲花克拉: #include "stdio.h"void main() {int i,j,n,k=0;scanf("%d",&n);for(i=0;i{ for(j=0;j printf(" "); for(j=0;j<2*i+1;j++) {printf("%c",'a'+k%26);++k;} printf("\n"); } }

斗门区13680915671: 任意输入n个数,输出其中最大值与最小值,并输出它在序列中的位置!C语言编程 -
贲花克拉: #include <stdio.h>#include <stdlib.h> int main() { int i, j, n, max_pos = 0, min_pos = 0; int * a; printf("Please input maximum number: "); scanf("%d", &n); a = (int *)malloc(sizeof(int) * n); printf("Please input %d numbers now:\n", n); for(i = 0; ...

斗门区13680915671: 如何用C语言实现从键盘任意输入n个数. -
贲花克拉: 手动管理内存 int max = 100; int* tmp = 0; int* buf = malloc(sizeof(int)*max); for (int i = 0; scanf("%d", buf+i); ++i) { if (i > max) // 如果buf已经满了, 那么内存扩大一倍 buf = realloc(buf, sizeof(int)*(max*=2) ); } 可以一直安全的输入到2的32次方除以8个数字, 如果内存够的话

斗门区13680915671: C语言编成:设计一个程序,从键盘键入n个数并输出它们的和(不能用数组). -
贲花克拉: #include void main() { int sum=0,s=0; printf("输入0结束,请输入n个数,每个数用空格隔开\n"); do { scanf("%d",&s); sum +=s; }while(s); printf("%d",sum); }

斗门区13680915671: 如何用c语言表示输入n个数字? -
贲花克拉: for(int i=0;i<10;i++) scanf("%d",&a[i]); 这样就可以输入10个数到数组中的.

斗门区13680915671: 从键盘输入n个数,求这n个数的和并输出.C语言怎么编??? -
贲花克拉: #include<stdio.h> main() {int n,i,a,sum=0; scanf("%d",&n);/*输入你所要计算的数的个数*/ printf("\n"); for(i=1;i<=n;i++)/*依次输入n个数,并求和*/ {scanf("%d",&a); sum+=a;} printf("%d\n",sum); return 0;}

斗门区13680915671: C语言 输入n表示输入的数字个数,输出输入的n个数的总和 -
贲花克拉: #include <stdio.h> int main(){ int i,n,num,s=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&num); s+=num; } printf("%d",s); return 0; }//运行示例:

斗门区13680915671: “哪位高手帮我编个程序啊?C语言的:输入N个整数,编程实现:1,输出其中所有正整数并计算所有正整数的和 -
贲花克拉: #include <stdio.h>int main() {int a[10] = {1,24,6,278,-134,-98,23,-23984,-379,2974};int n = 0;int sum = 0;int i;for(i=0;i<10;i++){if(0 < a[i]){n++;sum += a[i];}}printf("正整数个数为:%d,所有正整数之和为:%d\n",n,sum); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网