我遇到了问题,我需要找到代码在文件中的显示方式。 问题是在这个文件中代码可能出现不止一次,我只需要考虑一个。
我尝试编写一个计算代码在文件中的方式的函数(丢弃重复的代码):
int calcolo (struct sistema *sis,int l) {
char nome[l][6];
int i=2,a=1,h;
strcpy(nome[1],sis[1].codice);
h=1;
while(i<l) {
for(a=1;a<=h;a++) {
if(strcmp(nome[a],sis[i].codice)==0) {
i++;
break;
}
}
h++;
strcpy(nome[h],sis[i].codice);
i++;
}
return h;
}
输入文件是:
2015-03-03 07:01 X100 8.1
2015-03-04 08:02 X100 15.2
2015-03-18 13:15 X100 31.9
2015-08-02 13:10 B209 32.0
2015-08-15 12:01 B209 35.4
2016-01-02 10:44 A101 8.1
2016-02-02 15:41 X100 13.2
如果我不认识任何重复的字符串,我不知道如何“绕过”while的第二部分。 所以结果是3表示树代码(X100 B209 A101),但我收到5,为什么?
答案 0 :(得分:0)
我找到了答案,我知道这不是更好的使用goto的方法,但我需要跳过代码的第二部分,我已经“解决”了它:
int calcolo (struct sistema *sis,int l) {
char nome[l][6];
int i=2,a=1,h;
strcpy(nome[1],sis[1].codice);
h=1;
BACK:
while(i<l) {
for(a=1;a<=h;a++) {
if(strcmp(nome[a],sis[i].codice)==0) {
i++;
goto BACK;
}
}
h++;
strcpy(nome[h],sis[i].codice);
i++;
}
return h;
}
输出: 获得3 - 预期3
我宁愿不使用goto然后如果有人有其他解决路径,请告诉我,谢谢大家
答案 1 :(得分:0)
将每个新字符串放入一个集合中。然后就像这样使用:
var request = require('request');
var link = "https://nodejs.org/";
var proxyUrl = "http://" + user + ":" + password + "@" + host + ":" + port;
var proxiedRequest = request.defaults({'proxy': proxyUrl});
proxiedRequest(link , function (error, response, body) {
if(error){
console.log('Err: '+ error);
return false;
}
if(response.statusCode == 200 || response.statusCode == 201 || response.statusCode == 202){
console.log(link + ' is up!!');
return false;
}
if(response.statusCode == 301 || response.statusCode == 302){
console.log(link + ' is redirecting us!!');
return false;
}
if(response.statusCode == 401){
console.log("you are unauthorized to " + link);
return false;
}else{
console.log(link + ' is down!!');
}
});