for循环遍历求数组中的最大值?
解题思路:先键盘输入10个整数,假设数组的第1个是最大数max,同时设置最大值下标为0,接着for循环依次判断其是否大于最大数,如果大于替换掉最大值,并更新最大值下标,最后输出最大数和数组下标。
参考代码:
#include<stdio.h>
int main() {
int i,a[10],max,maxi;
//输入10个整数
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
//假设数组的第1个是最大数max,同时设置最大值下标为0
max=a[0];
maxi=0;
//for循环依次判断其是否大于最大数,如果大于替换掉最大值,并更新最大值下标
for(i=1;i<10;i++){
if(a[i]>max){
max=a[i];
maxi=i;
}
}
//输出最大数和数组下标
printf("最大数为:%d,数组下标为:%d",max,maxi);
return 0;
}
程序运行结果如下:
参考资料:
for循环遍历求数组中的最大值是最常用的方法,但还有一种方法就是循环链表的遍历;
首先需要创建数据域和指针域,回到mian函数中,创建三个节点,然后用头节点申请空间,再输入数据到头节点,最后用while语句,进行遍历链表。如下是循环链表遍历的实例:
void show(list *p) //遍历,循环链表的遍历最好用do while语句 ,因为头节点就有值
{
list *temp;
temp=p;
do
{
printf("%5d",temp->data);
temp=temp->next;
}
while(temp!=p);
printf("\n");
}