所以我用C創建了一個動態數組。該數組只包含數字。如何掃描我創建的1D數組以打印出數組中最後一個數字的數量?我創建了只掃描文件的代碼,如下所示:從數組中掃描數字
#include <stdio.h>
#include <limits.h>
int process(FILE *f) {
int a, b;
static int total = 1;
if (f == 0) return 0;
if (fscanf(f, "%d", &a) != 1) return INT_MIN;
if ((b= check_file (f)) == INT_MIN) return a;
if (a > b)
{total++; return printf("%d > %d and total now is %d\n", a, b, total), a; }
return b;
}
int main(void) {
FILE *fp= fopen("xxx.txt", "r");
process(fp);
fclose(fp);
return 0;
}
我可以對數組進行相同操作嗎?我怎樣才能做到這一點?我應該使用哪些命令?
動態數組:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t_size;
FILE * fp;
fp = fopen ("xxx.txt", "r");
fscanf(fp, "%d", &t_size);
printf("Create a size of %d array\n", t_size);
int* my_array = NULL;
my_array = malloc(t_size*sizeof(*my_array));
if (my_array==NULL) {
printf("Error allocating memory!\n"); //print an error message
return 1; //return with failure
getchar();
}
int i =0;
for (i = 0; i < t_size; i++)
{
fscanf(fp, "%d",&my_array[i]);
}
//if all is working smoothly...
printf("All up and running! Array created! :D\n");
for(i = 0; i < t_size; i++)
{
printf(" %d : %d\n", i, my_array[i]);
}
getchar();
free(my_array);
}
我逆轉了你的編輯。一旦你解決了問題,請不要刪除你的問題的內容。這對社區不利。考慮接受一個答案,或者自己寫一個答案然後接受答案 - 只要做一些事情,向未來的讀者展示如何解決類似的問題。 –
@ Bill:我很抱歉地說,但你可以考慮之前*隨時隨地*詢問網絡。 – usr2564301