以下のようなコンパイラエラーが出て、対処方法がわからないでいます。今まで出てきたことの内容があり解決に困っています。調べてみたところ全角スペースが含まれているとの事ですが、検討がつきません。プログラミングの内容は都道府県の情報をまとめたデータファイルをもとに人口密度の高い順に都道府県の情報を並べ替え、上位の10都道府県を出力するプログラミングです。
エラー内容
ex_07_01.c: In function 'print_data':
ex_07_01.c:15:3: error: stray '\343' in program
printf(" %s%. %lf\n",p->name, (double)p->popu*10000/(double)p->area);
^
ex_07_01.c:15:3: error: stray '\200' in program
ex_07_01.c:15:3: error: stray '\200' in program
ex_07_01.c:15:3: warning: unknown conversion type character 0x20 in format [-Wformat=]
ex_07_01.c: In function 'sort_by_density':
ex_07_01.c:33:1: error: stray '\343' in program
for (i=0; i<n; i++) {
^
ex_07_01.c:33:1: error: stray '\200' in program
ex_07_01.c:33:1: error: stray '\200' in program
ex_07_01.c: In function 'main':
ex_07_01.c:63:4: error: unknown type name 'sort_by_'
sort_by_ density(N, data_p);
^
ex_07_01.c:4:11: error: expected declaration specifiers or '...' before numeric constant
#define N 47
^
ex_07_01.c:63:21: note: in expansion of macro 'N'
sort_by_ density(N, data_p);
^
ex_07_01.c:63:24: error: expected declaration specifiers or '...' before 'data_p'
sort_by_ density(N, data_p);
C言語
1 2コード 3```C 4#include <stdio.h> 5#include <string.h> 6 7#define N 47 8#define SIZE 256 9 10typedef struct { 11 int id; 12 char name[SIZE]; 13 int area; 14 int popu; 15} prefecture; 16 17void print_data(prefecture *p) { 18 printf(" %s%. %lf\n",p->name, (double)p->popu*10000/(double)p->area); 19} 20 21prefecture set_data(int id, char name[], int area, int popu) { 22 prefecture data; 23 24 data.id = id; 25 strcpy(data.name, name); 26 data.area = area; 27 data.popu = popu; 28 29 return data; 30} 31 32void sort_by_density(int n, prefecture *data[]) { 33 prefecture *tmp; 34 int i, j; 35 36 for (i=0; i<n; i++) { 37 for (j=n-1; j>i; j--){ 38 if ((double)data[j]->popu/(double)data[j]->area > (double)data[j-1]->popu/(double)data[j-1]->area){ 39 tmp = data[j]; 40 data[j] = data[j-1] ; 41 data[j-1] = tmp; 42 } 43 } 44 } 45} 46 47int main(void) { 48 FILE *fin; 49 prefecture data[N], *data_p[N]; 50 char file[SIZE], name[SIZE]; 51 int area, i, id, popu; 52 53 scanf("%s", file); 54 if ((fin = fopen(file, "r")) == NULL) { 55 printf("Can't open the file.\n"); 56 return 1; 57 } 58 59 for (i=0; i<N; i++) { 60 fscanf(fin, "%d %s %d %d",&id, name, &area, &popu); 61 data[i] = set_data(id, name, area, popu); 62 data_p[i] = &data[i]; 63 } 64 65 66 sort_by_ density(N, data_p); 67 for (i=0; i<10; i++) print_data(data_p[i]); 68 69 fclose(fin); 70 return 0; 71}
回答3件
あなたの回答
tips
プレビュー