注意点:
文章来自博客园,作者:Ls_Hacker_柏杨(http://www.cnblogs.com/hlwyfeng/)
函数的定义和调用,注意声明
int max(int xx,int yy,int zz); int min(int xxx,int yyy,int zzz);
注意符号数组,比如 char a[10];数组a中有10个元素,a[0]~a[9],但是,里面不能装10个字符,因为符号数组最后有个‘\0‘,自动的。
char a[1000];
for (i=0;i<=n;i++) 不是字符数组的话,是i<n,但是因为是字符数组有‘\n‘,所以用i<=n,细节问题要注意。
注意 i++与++i 的区别
i=i+1;与++i等价
对if的更深入了解
注意比较两个数大小的方法
m=yy>zz?yy:zz; n=xx>m?xx:m;
内容: abc三个人,n个人投票(n需要输入),统计abc三人的票数,abc三个字母以外的字符为弃权,按得票多少打印候选人和票数(相同票数按abc字母顺序输出)
输入说明:
第一行 n 代表有个人投票
第二行有n个字符(字母不区别大小写,如a和A都代表投给a票,abc 以外的字符弃权)
输出说明:
三行每行第一为字母(只能为abc之一,然后是得票数),按从大到小顺序
输入样例:
6 abcA1b
输出样例 :
a 2 b 2 c 1
#include <stdio.h> int main() { int max(int xx,int yy,int zz); int min(int xxx,int yyy,int zzz); char a[1000]; int n,i,x=0,y=0,z=0,t,h; scanf("%d",&n); for (i=0;i<=n;i++) //控制数组容量 { a[i]=getchar(); if (a[i]==‘a‘||a[i]==‘A‘) //这里也可用ASCLL码,‘a‘为97 { ++x; } if (a[i]==‘b‘||a[i]==‘B‘) { ++y; } if (a[i]==‘c‘||a[i]==‘C‘) { ++z; } } t=max(x,y,z); h=min(x,y,z); if (t!=h) //排除了a,b,c数量相同的情况 { if (x==t) { printf("a %d\n",x); } if (y==t) { printf("b %d\n",y); } if (z==t) { printf("c %d\n",z); } if (x>h&&x<t) { printf("a %d\n",x); } if (y>h&&y<t) { printf("b %d\n",y); } if (z>h&&z<t) { printf("c %d\n",z); } if (x==h) { printf("a %d\n",x); } if (y==h) { printf("b %d\n",y); } if (z==h) { printf("c %d\n",z); } } else printf("a %d\nb %d\nc %d\n",x,x,x); return 0; } int max(int xx,int yy,int zz) { int m,n; m=yy>zz?yy:zz; n=xx>m?xx:m; return (n); } int min(int xxx,int yyy,int zzz) { int m,n; m=yyy<zzz?yyy:zzz; n=xxx<m?xxx:m; return (n); }
时间: 2024-10-14 07:35:39