读入一串字符,以“?”结束,分别统计其中每个数字(0 1 2 3 4。。。。。9)的个数,并输出 输入一串字符,以“ ?”结束,分别统计其中每个数字字符0,1...

\u8f93\u5165\u4e00\u4e32\u5b57\u7b26\uff0c\u4ee5\u201c \uff01\u201d\u7ed3\u675f\uff0c\u5206\u522b\u7edf\u8ba1\u5176\u4e2d\u6bcf\u4e2a\u6570\u5b57\u5b57\u7b260\uff0c1\uff0c2\uff0c\u2026.9\u51fa\u73b0\u7684\u6b21\u6570\u3002\u7528c\u8bed\u8a00\u5199

#include
int main(int argc, char* argv[])
{
char ch;
int counter[10];
for (int i=0;i<10;i++)
{
counter[i]=0;
}
while((ch = getchar()) != '!')
{
switch (ch)
{
case '0':
counter[0]++;
break;
case '1':
counter[1]++;
break;
case '2':
counter[2]++;
break;
case '3':
counter[3]++;
break;
case '4':
counter[4]++;
break;
case '5':
counter[5]++;
break;
case '6':
counter[6]++;
break;
case '7':
counter[7]++;
break;
case '8':
counter[8]++;
break;
case '9':
counter[9]++;
break;
default:
break;
}
}
for (i=0;i<10;i++)
{
//cout<<"\u6570\u5b57"<<i<<"\u7684\u4e2a\u6570\u662f:"<<counter[i]<<endl;//\u5982\u679c\u7528C++;
printf("\u6570\u5b57");
printf("%d",i);
printf("\u7684\u4e2a\u6570\u662f:%d\n",counter[i]);
}
return 0;
}

\u6ce8\u91ca\uff1a
VC6.0\u6d4b\u8bd5\u901a\u8fc7\uff1b

// \u662fJAVA\u8fd8\u662fC\u8fd8\u662fC++\u8fd8\u662fVB\u8fd8\u662fDELPHI
// \u56e0\u6b64,\u6211\u53ea\u597d\u5199\u4f2a\u4ee3\u7801
// \u58f0\u660e\u4e00\u4e2a\u6570\u7ec4count[10];\u7528\u6765\u5b58\u50a8\u5b89\u7b260...9\u51fa\u73b0\u7684\u6b21\u6570
// \u58f0\u660e\u4e00\u4e2achar\u53d8\u91cfch = null;
// while(ch != '?'){
// \u4ece\u5206\u952e\u76d8\u8bfb\u53d6ch\u7684\u503c.
int num = ch - 0;
count[num]++;
}

思路:

将输入保存到字符串中,然后逐字符判断是否0~9之间的字符并计数,最后输出。

因为字符串是定长的(静态分配),所以在读入字符的时候加上了越界检查。

判断并计数的时候用的是switch结构,写起来会比较麻烦。

代码:

#include <stdio.h>

#define LENGTH 256

int main(void)
{
    char c;
    char s[LENGTH];
    int i=0;
    int l;
    int count[10]={0};

    printf("输入字符串,以\"?\"结束:
");

    while (c != '?')
    {
        if (i<LENGTH-1)
        {
            c = getchar();
            s[i]=c;
            i++;
        }
        else
        {
            break;
        }
    }

    s[i]='\0';
    l=i-1;

    for (i=0;i<l;i++)
    {
        switch (s[i])
        {
            case '0':
                count[0]++;
                break;
            case '1':
                count[1]++;
                break;
            case '2':
                count[2]++;
                break;
            case '3':
                count[3]++;
                break;
            case '4':
                count[4]++;
                break;
            case '5':
                count[5]++;
                break;
            case '6':
                count[6]++;
                break;
            case '7':
                count[7]++;
                break;
            case '8':
                count[8]++;
                break;
            case '9':
                count[9]++;
                break;
        }
    }


    printf("%s
",s);
    for (i=0;i<10;i++)
    {
        printf("%d出现的次数:%d
",i,count[i]);
    }
    return 0;
}

测试结果:

moose@debian-vm:~$ ./main
输入字符串,以"?"结束:
jdoc82ur.re1675884"o"#(?
jdoc82ur.re1675884"o"#(?
0出现的次数:0
1出现的次数:1
2出现的次数:1
3出现的次数:0
4出现的次数:1
5出现的次数:1
6出现的次数:1
7出现的次数:1
8出现的次数:3
9出现的次数:0


定义个9个元素的整数的数组,各元素初始化成0,,,,循环这个字符串,遇到是'0'~'9'的,对前面的数组对应的元素加1

~~~~

  • 璇诲叆涓涓插瓧绗,浠鈥?鈥缁撴潫,鍒嗗埆缁熻鍏朵腑姣忎釜鏁板瓧(0 1 2 3 4銆傘傘9...
    绛旓細浠g爜锛歩nclude <stdio.h>#define LENGTH 256int main(void){ char c; char s[LENGTH]; int i=0; int l; int count[10]={0}; printf("杈撳叆瀛楃涓诧紝浠\"?\"缁撴潫:\n"); while (c != '?') { if (i<LENGTH-1) { c = getchar(); s[i]...
  • 鎬庝箞鍦╟++涓緭鍏涓涓插瓧绗鍟
    绛旓細scanf("%s", str ) ; //璇诲叆涓涓插瓧绗︼紝涓嶈兘鍖呮嫭绌烘牸 gets(str); //杈撳叆涓琛屽瓧绗︼紝鍙互鏈夌┖鏍硷紝浠ュ洖杞﹂敭缁撴潫 C++鍑芥暟锛屽彲浠ュ瓨鍌ㄥ埌瀛楃鏁扮粍锛屼篃鍙互瀛樺偍鍒皊tring绫诲璞′腑锛歴tring str;cin >> str ; //璇诲叆涓涓插瓧绗︼紝涓嶈兘鍖呮嫭绌烘牸 getline(cin,str ); //杈撳叆涓琛屽瓧绗︼紝鍙互鏈夌┖鏍硷紝浠ュ洖杞﹂敭缁撴潫...
  • 杈撳叆涓涓插瓧绗,浠鈥?鈥缁撴潫銆
    绛旓細include <stdio.h> int main() { char ch; int zimu = 0, kongge = 0, shuzi =0 , qita = 0; while(ch = getchar(), ch != '?') {//璇诲叆瀛楃骞跺垽鏂槸涓嶆槸'?' if (ch>='0' && ch <= '9') {//濡傛灉鏄暟瀛 shuzi++; } else { if (ch>='a' && ch<='z' ||...
  • c璇█ 杈撳叆涓涓插瓧绗,浠'?'缁撴潫,缁熻鍚勫瓧姣嶅嚭鐜扮殑娆℃暟
    绛旓細count[c-'a']++;} while閲岄潰鐨勬槸鍒ゆ柇寰幆鏄惁缁撴潫鐨勮鍙 if璇彞鍒欏垽鏂璇诲叆鐨刢鏄惁鏄瓧姣嶏紝濡傛灉鏄紝鍒檆ount[c-'a']++;count銆恈-'a'銆戝氨鏄瀛楁瘝 姣斿璇诲叆a a-a灏辨槸0 count[0]灏变唬琛╝瀛楁瘝鍑虹幇鐨勬鏁 鍏朵綑鍚岀悊
  • 濡備綍灏涓涓瓧绗涓浠ヤ竴涓绌烘牸涓哄垎闅绗,鍒嗗壊鎴愪袱涓瓧绗︿覆?
    绛旓細姣旇緝閫氱敤鐨勬湁涓ょ鏂规硶锛1.鍒╃敤sscanf锛屼緥瀛愬LS銆俿scanf(a,"%s%s",b,d);杩欓噷鎶婃簮瀛楃涓瞐鎸%s鏍煎紡璇诲叆鍒板瓧绗︿覆b鍜宒涓俿鐨勫惈涔夋槸璇诲瓙瀛楃涓诧紝杩欎釜瀛椾覆鏄笉鍚┖鏍肩殑銆傞亣鍒扮┖鏍煎氨浼缁撴潫璇诲叆銆2.鑷繁鍐欏垎鍓插瓧绗︿覆鍑芥暟銆傚吀鍨嬬殑鏂规硶鏄埄鐢╯trchr(s,' ')鍦╯涓壘鍒扮涓涓绌烘牸鐨勬寚閽堬紝鐒跺悗瀵规寚閽堣嚜澧...
  • 5.1杈撳叆涓琛瀛楃,鍒嗗埆缁熻鍑哄叾涓殑鑻辨枃瀛楁瘝銆佹暟瀛椼佺┖鏍煎拰鍏跺畠瀛楃鐨勪釜...
    绛旓細1銆璇诲叆瀛楃锛鐩村埌閬囧埌鎹㈣缁撴潫銆2銆佸浜庢瘡涓瓧绗︼紝鍒ゆ柇鏄瓧姣嶈繕鏄暟瀛楋紝鎴栬呯┖鏍硷紝鎴栬呮槸鍏跺畠瀛楃銆3銆佸浜庢瘡涓瓧绗﹀垽鏂悗锛屽搴旂被鍒鏁板櫒鑷姞銆4銆佹渶缁堣緭鍑虹粨鏋溿備笁銆佸弬鑰冧唬鐮侊細include <stdio.h>int main(){ int a,b,c,d,ch; a=b=c=d=0;//璁℃暟鍣ㄥ垵濮嬪寲涓0. while((ch=getchar...
  • c璇█缂栫▼棰
    绛旓細1-1锛/*杈撳叆涓涓插瓧绗︼紝浠鈥滐紵鈥缁撴潫锛缁熻鍚勫瓧姣嶅嚭鐜扮殑娆℃暟锛屽苟鎸夊瓧姣嶅嚭鐜扮殑澶氬皯杈撳嚭锛堝厛杈撳嚭瀛楁瘝鍑虹幇澶氱殑锛屾鏁扮浉鍚岀殑鎸夌収瀛楁瘝琛ㄩ『搴忚緭鍑猴紝涓嶅嚭鐜扮殑涓嶈緭鍑猴級*/ include <stdio.h> include<string.h> include<stdlib.h> define N 100 void main(){void f(int a[],char str[]);char str[N]...
  • C璇█绋嬪簭瑕璇诲叆涓琛屾枃鏈,浠绌烘牸鍒嗛殧鑻ュ共涓崟璇,浠モ.鈥缁撴潫銆備綘瑕佽緭鍑...
    绛旓細3銆佺敤do-while寰幆鎺у埗杈撳叆鏂囩珷锛屾潯浠舵槸涓嶇瓑浜庡彞鍙枫4銆佸彇鏂囩珷涓殑瀛楃锛淇濆瓨鍦ㄦ暟缁刟rt涓5銆佺敤for寰幆鎺у埗鑾峰彇鏂囩珷涓殑鏈鐭崟璇嶏紝鏉′欢鏄皬浜庣瓑浜巐銆6銆佺敤if璇彞鍒ゆ柇鏄惁涓虹┖鏍煎拰鍙ュ彿锛岃幏鍙涓涓鍗曡瘝銆7銆佽幏鍙栨渶鐭崟璇嶏紝骞朵繚瀛樺湪鏁扮粍word涓傝繍琛岀▼搴忥紝杈撳叆浠ュ彞鍙缁撴潫鐨勮嫳鏂囨枃绔狅紝鐢佃剳灏变細杈撳嚭鏈鐭殑...
  • C璇█闂,杈撳叆涓涓插瓧绗鏃,scanf鍜実etchar鏄垎鍒鍒颁粈涔缁撴潫?
    绛旓細scanf 鍙互涓娆璇诲彇涓涓瓧绗涓叉垨澶氫釜瀛楃涓 瀹冩槸璇诲彇杈撳叆缂撳啿鍖猴紝褰撹緭鍏ュ洖杞﹀悗 鎵嶅紑濮嬫墽琛岃鍙 濡傛灉鏄竴娆¤鍏ュ涓瀛楃涓诧紝璇诲彇瀛楃涓茬殑缁撴潫 鍜岃鍏ユ牸寮忔湁鍏崇郴 渚嬪锛歴canf("%s %s",s1,s2) 鎵ц鏃 閬囧埌绌烘牸绗﹀悗S1缁撴潫锛鍓╀綑鐨勫瓧绗︿覆灏辩粰S2浜 scanf("%s,%s",s1,s2) 杩欎釜杈撳叆瀛楃涓叉椂锛岄渶瑕佺敤閫楀彿...
  • C++璇诲叆涓涓瓧绗涓(浠*缁撴潫),鍐欏叆鏂囨湰鏂囦欢a.dat涓???鎬ュ晩!
    绛旓細cout << "璇疯緭鍏瀛楃涓,浠鏄熷彿'*'缁撴潫锛" << endl;cin.getline(str,50,'*');outfile << str; // 灏嗚緭鍏ョ殑瀛楃涓插瓨鍏ユ枃浠禷.dat涓 outfile.close(); // 鍏抽棴鎵撳紑鐨刟.dat鏂囦欢 char s[50];ifstream infile;infile.open("a.dat",ios::in); // 鎵撳紑鏂囦欢a.dat if(!infile) ...
  • 扩展阅读:正在载入 宿舍 ... 正在载入 卜 ... 正在载入 酷狗音乐 ... 正在载入 氵一 ... 丢失dll文件一键修复 ... 文言文翻译转换器 ... c++一个一个读入字符 ... 正在载入 二刂ee ... getchar读入多个字符 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网