[英]Why doesn't work properly and doesn't read the inputs?
我有這段代碼,簡單又沒有問題,看來這里一切都很好,但是當我運行它時,它會顯示0到99之間的數字(首先應該讀取一些輸入)。 怎么了
#include <stdio.h>
int main(){
int N;
int schools[98];
char string[20];
int number;
scanf("%d", &N);
int i;
for(i=0; i<=99; ++i) schools[i] = 0;
for(i=0; i<N; ++i){
scanf("%s", string);
scanf("%s", string);
scanf("%d", number);
schools[number]++;
}
int min = N;
for(i=0; i<=99; ++i) if(schools[i] < min)
min = schools[i];
for(i=0; i<=99; ++i){
if(schools[i] == min) printf("%d, ", i);
}
return 0;
}
for(i=0; i<=99; ++i) schools[i] = 0;
出站訪問數組。 UB
scanf("%d", number);
number
永遠不會初始化,所以這是UB。 它應該是
scanf("%d", &number);
掃描到變量的地址。
scanf("%s", string);
scanf("%s", string);
這沒有任何意義,因此將您的代碼放在一起並不如您想象的那樣好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.