注意點:
文章來自博客園,作者: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);
}
a = Val(InputBox("請輸入選票,棄權請輸0 ,結束請輸入 -1", "輸入框"))
你分隔符用了中文標點 , 只能用 ,