C语言如何找出一个数组的最大数,并且指出是第几个数?

如题所述

#include<stdio.h>


main()


{


int a[10]={1,2,3,4,5,44,7,8,9,10};


int i;


int max,maxb;


max=a[0];maxb=0;


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


{


if(a[i]>max)


{


max=a[i];


maxb=i;


}


}



printf("max=%d  ,   is  %d\n",max,maxb+1);


}

知识拓展:

C语言必备的装置和书籍:


A)开发环境


例如turbo C 2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个平台虽然体积大,但是一旦安装好了,用起来很方便。


B)一本学习教程


现在C语言教材多如牛毛,推荐大家使用《C语言程序设计》第二版。此书很适合初学者,并且内容也很精到。


C)利用辅助学习软件


毕竟现在是Windows时代了,学习软件多如牛毛,这里向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,有好几千题的题库测试环境,包括一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。

二、葵花宝典


读程序是学习C语言入门最快,也是最好的方法。我们大家都应该有个体验——在最初学习windows系统操作或Microsoft words如果操作的过程中,刚开始总是正儿八经地买来教材,结果读来读去却云里雾里,而当我们将教材丢在一边,拿起鼠标反复地试,几个小时就搞定。包括学习J#,C#等其他语言,在今天的Windows时代,也不再提倡抱着书本逐行啃,而是学习它们的例程。


当然,对于没有学过任何计算机语言的初学者,多少要先阅读教程,认真体会所有概念,然后不放过这一章中提到的所有例程,仔细研读,直到每一行都理解了,再找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序。如果写不出来,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止。

三、登峰造极


写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。


是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些I/O函数罢了。

举个例子:


你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,那么恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-20

#include<stdio.h>
main()
{
int a[10]={1,2,3,4,5,44,7,8,9,10};
int i;
int max,maxb;
max=a[0];maxb=0;
for(i=0;i<10;i++)
{
if(a[i]>max)
{
max=a[i];
maxb=i;
}
}

printf("max=%d  ,   is  %d\n",max,maxb+1);
}

#include "stdio.h"int main() {    int n,a[20],i,j,flag=0,max;    int b[20]={0};//计数数组    printf("请输入您要输入几个数:");    scanf("%d",&n);    // 输入    for(i=0;i<n;i++)        scanf("%d",&a[i]);       for(i=0;i<n-1;i++)        for(j=i+1;j<n;j++)            if(a[i]==a[j])                b[i]++;    for(i=0;i<n;i++)       if(b[i]!=0){           flag=1;           break;       }    if(flag==0) {        printf("输入数据中没有重复出现的数!\n");        return 1;    }     max=b[0];    for(i=1;i<n;i++)        if(b[i]>max)            max=b[i];    for(i=0;i<n;i++)        if(max==b[i])            printf("出现最多次数的是%d,一共出现%d次\n",a[i],b[i]+1);                 return 0;}