注意點:
文章來自博客園,作者: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", "輸入框"))
你分隔符用了中文標點 , 只能用 ,