C 练习实例78
题目:找到年龄最大的人,并输出。请找出程序中有什么问题。
程序分析:无。
实例
// Created by study.p2hp.com on 15/11/9.
// Copyright © 2015年 高手教程. All rights reserved.
//
#include<stdio.h>
#include<stdlib.h>
struct man{
char name[20];
int age;
}
person[3]={"li",18,"wang",25,"sun",22};
int main()
{
struct man *q,*p;
int i,m=0;
p=person;
for(i=0;i<3;i++)
{
if(m<p->age)
{
m=p->age;
q=p;
}
p++;
}
printf("%s %d\n",q->name,q->age);
return 0;
}
以上实例运行输出结果为:
wang 25
C 语言经典100例



裴运章
961***686@qq.com
三个年龄都是 0 的时候不行 q 没赋初值,下面加了个 q=p=person,再就是年龄相等且为最大值的时候应同时输出,改进之后程序如下。
#include "stdafx.h" #include<stdlib.h> struct man{ char name[20]; int age; } person[3]={"li",25,"wang",25,"sun",25}; int main() { struct man *q,*p; int i,m=0,k=0; q=p=person; for(i=0;i<3;i++) { if(m<p->age) { m=p->age; q=p; k=i; } p++; } for(;k<3;k++) { if(person[k].age>=m) printf("%s %d\n",person[k].name,person[k].age); } return 0; }裴运章
961***686@qq.com