簡體   English   中英

為什么不能正常工作並且不讀取輸入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM