小练习
传送文件数据
 a文件中数据包括学生学号、姓名、以及体重,体重会随时上传,现在需要将a文件中的数据传送到b文件,要求b文件中只显示每个学生最新的一次数据
| #include<stdio.h>#include<string.h>
 #include<stdlib.h>
 int main()
 {
 FILE* b = fopen("C:\\Users\\丁长春\\Desktop\\新建文本文档.txt", "r");
 FILE* z = fopen("C:\\Users\\丁长春\\Desktop\\新建文本文档 - 副本.txt", "w");
 FILE* x = fopen("C:\\Users\\丁长春\\Desktop\\新建 - 副本.txt", "w");
 if (b== NULL||z == NULL || x == NULL)
 {
 printf("文件打开失败1!\n");
 }
 char buf[1024] = "";
 char buff[1024] = "";
 char duf[1024] = "";
 char aaa[1024] = "";
 int c = 0;
 fputs(buff, x);
 while (fgets(buff, 1024,b))
 {
 fputs(buff, z);
 }
 fclose(z);
 fclose(x);
 fclose(b);
 FILE* f = fopen("C:\\Users\\丁长春\\Desktop\\新建文本文档.txt", "r");
 if (f == NULL)
 {
 printf("文件打开失败2!\n");
 }
 while (fgets(buf, 1024, f))
 {
 c = 0;
 FILE* z = fopen("C:\\Users\\丁长春\\Desktop\\新建文本文档 - 副本.txt", "r");
 if (z == NULL )
 {
 printf("文件打开失败3!\n");
 }
 while(fgets(duf, 1024, z))
 {
 if ((buf[0] == duf[0])&& (buf[1] == duf[1]))
 {
 strcpy(buf,duf);
 }
 }
 fclose(z);
 FILE* x = fopen("C:\\Users\\丁长春\\Desktop\\新建 - 副本.txt", "r");
 if (x == NULL)
 {
 printf("文件打开失败4!\n");
 }
 while (fgets(aaa, 1024, x))
 {
 if ((buf[0] == aaa[0])&& (buf[1] == aaa[1]))
 {
 c = 1;
 }
 }
 fclose(x);
 if (c == 0)
 {
 FILE* x = fopen("C:\\Users\\丁长春\\Desktop\\新建 - 副本.txt", "a");
 if (x == NULL)
 {
 printf("文件打开失败5!\n");
 }
 fputs(buf, x);
 fclose(x);
 }
 }
 fclose(f);
 }
 
 
 | 
方法可能有些麻烦,而且如果a文件中最上边学生的学号不是按书序排列,那b文件中的学号顺序也不是按顺序排列,这个怎么搞还没有想好。
找到1000以内所有素数
| int main(){
 int arry[1001] = { 0 };
 for (int i =2; i < 1001; i++)
 {
 if (arry[i] == 0)
 {
 printf("%d ", i);
 for (int j = i + i; j < 1001; j += i)
 {
 arry[j] = 1;
 }
 }
 }
 return 0;
 }
 
 | 
1 2 4 7 11 16 22.。。。。第五十个数
|    int s = 1;for (int i = 0; i <50; i++)
 {
 s += i;
 }
 printf("%d\n", s);
 
 | 
n*n数阵(递增)
|    int n ;scanf("%d", &n);
 for (int i = 0; i < n; i++)
 {
 for (int j = 1; j <= n; j++)
 {
 printf("%d ", i * n + j);
 }
 printf("%c",'\n');
 }
 
 | 
直角三角
|     int n;scanf("%d", &n);
 for (int i = 1; i <=n; i++)
 {
 for (int j = 0; j < i; j++)
 {
 printf("%c ", '\*');
 }
 printf("%c", '\n');
 }
 
 | 
等腰三角
|     int n;scanf("%d", &n);
 for (int i = 1; i <= n; i++)
 {
 for (int j = i; j < n; j++)
 {
 printf("%c", '\0');
 }
 for (int j = 0; j <i; j++)
 {
 printf("%c", '\*');
 printf("%c", '\0');
 }
 printf("%c",'\n');
 
 }
 
 | 
等腰三角(第一行一个,第二行三个,第三行5个*……)
|    int n;scanf("%d", &n);
 for (int i = 1; i <= (n + 1) / 2; i++)
 {
 for (int j = i; j < (n + 1) / 2; j++)
 {
 printf(" ");
 }
 for (int j = 0; j < 2*i-1; j++)
 {
 printf("%c", '\*');
 }
 printf("%c", '\n');
 }
 
 | 
待续……