【swu】 判断参数是否有效,参数替7个数字
【swu】 判断参数是否有效,参数为7个数字。
1 #include <stdio.h>
2
3 int main ()
4 {
5 FILE *fp;
6 int i, k, tmp, q;
7 int num[7];
8 fp = fopen("data.in","r");
9 for (q=0;q<7;q++)
10 fscanf(fp, "%d", &num[q]);
11 if(fp==NULL){
12 fprintf(stderr,"Can't open the file.\n");
13 return 1;
14 }
15 for(q=0; q<7; q++){
16 if(fscanf(fp, "%d", &num[i]) != 1){
17 fprintf(stderr,"Valid\n");
18 return 2;
19 } 为什么这里总是输出Valid,我外面的data.in 文件里面只有7个数字,而且用了空格号隔
20 } 开了的。
21 for(i=0; i<7; i++){
22 for(k=0; k<7-i-1; k++){
23 if(num[k]>num[k+1]){
24 tmp = num[k+1];
25 num[k+1] = num[k];
26 num[k] = tmp;
27 }
28 }
29 }
30 for(q=0;q<7;q++)
31 printf("%d ",num[q]);
32 printf("\n");
33 return 0;
34 }
------解决方案--------------------
1 #include <stdio.h>
2
3 int main ()
4 {
5 FILE *fp;
6 int i, k, tmp, q;
7 int num[7];
8 fp = fopen("data.in","r");
9 for (q=0;q<7;q++)
10 fscanf(fp, "%d", &num[q]);
11 if(fp==NULL){
12 fprintf(stderr,"Can't open the file.\n");
13 return 1;
14 }
15 for(q=0; q<7; q++){
16 if(fscanf(fp, "%d", &num[i]) != 1){
17 fprintf(stderr,"Valid\n");
18 return 2;
19 } 为什么这里总是输出Valid,我外面的data.in 文件里面只有7个数字,而且用了空格号隔
20 } 开了的。
21 for(i=0; i<7; i++){
22 for(k=0; k<7-i-1; k++){
23 if(num[k]>num[k+1]){
24 tmp = num[k+1];
25 num[k+1] = num[k];
26 num[k] = tmp;
27 }
28 }
29 }
30 for(q=0;q<7;q++)
31 printf("%d ",num[q]);
32 printf("\n");
33 return 0;
34 }
------解决方案--------------------