我剛剛寫了一個程序,它假設返回出現最多/最少的字符。在沒有switch語句的測試過程中進行編程工作,但是當我添加它時開始崩潰。你能看看嗎?使用開關後簡單的程序崩潰 - C
主要功能
#include <stdio.h>
#include <stdlib.h>
#include "tools.h"
int main(int argc, char *argv[]) {
int count[256] = { 0 };
int c;
while ((c=getchar())!=EOF){
count[c]++;
}
switch (argv[1][1]) {
case 'm': case 'M':
mostOften(count);
break;
case 'l': case 'L':
leastOften(count);
break;
default:
mostOften(count);
break;
}
return 0;
}
工具功能
#include <stdio.h>
#include <stdlib.h>
#include "tools.h"
void mostOften(int *s) {
int j;
int max, cha;
for(j=32; j<126; j++){
if(s[j]>max) {
max=s[j];
cha=j;
}
}
printf("char %c: %d times\n", cha, max);
}
void leastOften(int *s) {
int j;
int min=10000, cha;
for(j=32; j<126; j++){
if(s[j] && s[j]<=min) {
min=s[j];
cha=j;
}
}
printf("char %c: %d times\n", cha, min);
}
switch語句 – saygins
前加上'如果(ARGC> 1)'語句,因此不是一個調試服務。編譯符號,在調試器中運行代碼,逐行跟蹤程序,檢查相關變量的值,以瞭解實際發生的情況。如果出現*特定*問題,請隨時返回此處。 – alk