我的小c程序崩溃了

时间:2012-11-26 07:59:54

标签: c string crash

这是一个应该找到字符串中最常见元素的程序。但是当我输入一个字符串时它会崩溃。

#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(){
    char a[100];
    scanf("%s", a);
    int max=0,n,k;
    int urt = strlen(a);
    for(int i=0; i<urt-1; i++){
        n=0;
        for(int l=i+1; l<urt; l++){
            if(a[i]==a[l]) n++;
        }
        if(max<n){
            max=n; 
            k=i;
        }
    }
    printf("%s\n", a[k]);
    printf("%d", max);
    getch();
    return 0;
}

1 个答案:

答案 0 :(得分:6)

  

错误:格式'%s'需要类型为'char *'的参数,但参数为2   类型'int'

这意味着您需要更改:

printf("%s\n", a[k]);

为:

printf("%c\n", a[k]);

因为a[k]不是字符串,而是字符。另外,要获得更准确的输出,请添加1到n以考虑您正在扫描的字符(来自外部循环):

n=1; // instead of n=0;