C语言进行特定格式文本文件的筛选与判断9300100,109300101,109300102,109300110,109300111,109301110,209301111,209301112,20某文本文件中内容如上,每行2列数字,当某些行第一列数字满足(1)前六位相同(2
9300100,10
9300101,10
9300102,10
9300110,10
9300111,10
9301110,20
9301111,20
9301112,20
某文本文件中内容如上,每行2列数字,当某些行第一列数字满足(1)前六位相同 (2)第7位数字从0~2均出现,则把这些行合并为一行,第一列数字为前6位,如上述行合并为两行
930010,10
930111,20,请问如何实现?(用其他语言亦可)
不满足上述条件的行被丢弃,满足条件的行实行合并
/*
原始数据:
9300100 10
9300101 10
9300102 10
9300110 10
9300111 10
9301110 20
9301111 20
9301112 20
处理后数据:
930010 10
930011 10
930111 20
Press any key to continue
*/
#include <stdio.h>
#define N 60
int main() {
int i,j,n,k,flag,data1[N],data2[N];
FILE *fp = fopen("indata.txt","rt");
if(fp == NULL) {
printf("无法打开数据文件。");
return 1;
}
printf("原始数据:");
for(n = 0; !feof(fp) && n < N; ++n) {
fscanf(fp,"%d,%d",&data1[n],&data2[n]);
printf("%d %d",data1[n],data2[n]);
data1[n] /= 10; // 去除末位
}
fclose(fp);
for(i = 0; i < n - 1; ++i) {
flag = 0;
for(j = i + 1; j < n; ++j) {
if(data1[j] == data1[i] && data2[j] == data2[i]) {
for(k = j; k < n - 1; ++k) {
data1[k] = data1[k + 1];
data2[k] = data2[k + 1];
}
--n;
flag = 1;
}
}
if(flag) --i;
}
printf("处理后数据:");
for(i = 0; i < n; ++i)
printf("%d %d",data1[i],data2[i]);
return 0;
}
当X满足条件()时,√2X-3有意义;当X满足条件()时,√X+√X-1有意义,X满足条件()时,( 2020-03-30 …
一个数除以3余2,除以5余3,除以7余2,求满足条件的最小的数是多少.满足除以5余1,除以7余3, 2020-05-14 …
已知A={x丨x满足条件P},B={x丨x满足条件B},如果A⊆B,那么p是q的什么条 2020-05-17 …
用l、2、3、4这四个数字组成四位数,至多允许有1个数字重复两次.例如1234、1233和2414 2020-06-16 …
1.正整数a,b,c满足abc=6,写出满足条件的所有数组2.用1,2,3,4,组成各位数字都不1 2020-07-10 …
三角形ABC的3个内角角A、角B、角C满足以下条件:3倍的角A大于5倍的角B,2倍的角B大于等于3 2020-07-30 …
最简分数排序问题描述输入一个正整数N,找出所有分母不大于N、且数值在0和1之间的最简分数,例如当N 2020-07-31 …
由1,2,3,4,5这五个数字组成无重复数字的五位数,满足从左至右第一位到第k(1≤k≤4)位不能只 2020-11-19 …
如何判断1个值是否满足3个条件?-技术问答如题条件1条件2条件3同时满足条件1,2,3都有可能不存在 2020-11-21 …
根据条件列算式解答:足球有120个,横线.篮球有多少个?急,求求各位帮个忙!1.篮球的个数是足球的3 2020-12-17 …