提交记录 #522
提交时间:2025-01-04 10:01:58
语言:c
状态:Accepted
编译情况:编译成功
code.c: In function ‘kezheng’:
code.c:9:9: warning: statement with no effect [-Wunused-value]
9 | for (i;i<strlen(number);i++) printf("%c",number[i]);
| ^~~
code.c:16:5: warning: statement with no effect [-Wunused-value]
16 | for (i;i<count_zheng+zhi;i++) printf("%c",number[i]);
| ^~~
code.c:18:5: warning: statement with no effect [-Wunused-value]
18 | for (i;i<strlen(number);i++){
| ^~~
code.c: In function ‘kefu’:
code.c:38:9: warning: statement with no effect [-Wunused-value]
38 | for (i;i<strlen(number);i++){
| ^~~
code.c:54:9: warning: statement with no effect [-Wunused-value]
54 | for (i;i<strlen(number);i++){
| ^~~
code.c: In function ‘kezheng’:
code.c:8:46: warning: ‘i’ may be used uninitialized in this function [-Wmaybe-uninitialized]
8 | if (count_zheng+zhi>=2) while (number[i]=='0') i++;
| ~~~~~~^~~
固定测试点#1:
固定测试点#2:
固定测试点#3:
固定测试点#4:
固定测试点#5:
固定测试点#6:
额外测试点#3600:
H21【选做▪中学】科学记数法
#include<stdio.h>
#include<string.h>
char number[100],z[20];
void kezheng(int zhi,int count_zheng,int count_xiao){
int i,count=0;
if (zhi+count_zheng>=strlen(number)){
if (count_zheng+zhi>=2) while (number[i]=='0') i++;
for (i;i<strlen(number);i++) printf("%c",number[i]);
for (i=1;i<=zhi+count_zheng-strlen(number);i++) printf("0");
printf(".00000000\n");
return ;
}
i=0;
if (count_zheng+zhi>=2) while (number[i]=='0') i++;
for (i;i<count_zheng+zhi;i++) printf("%c",number[i]);
printf(".");
for (i;i<strlen(number);i++){
printf("%c",number[i]);
count++;
if (count==8){
printf("\n");
return ;
}
}
for (i=1;i<=8-count;i++) printf("0");
printf("\n");
}
void kefu(int zhi,int count_zheng,int count_xiao){
int i=0,count=0;
if (zhi>=8+count_zheng){
printf("0.00000000\n");
return ;
}
if (zhi==0){
printf("%c",number[i]);
i++;
for (i;i<strlen(number);i++){
printf("%c",number[i]);
count++;
if (count==8){
printf("\n");
return ;
}
}
for (i=1;i<=8-count;i++) printf("0");
printf("\n");
return ;
}
if (count_zheng>zhi){
count=0;
for (i=0;i<count_zheng-zhi;i++) printf("%c",number[i]);
printf(".");
for (i;i<strlen(number);i++){
printf("%c",number[i]);
count++;
if (count==8){
printf("\n");
return ;
}
}
for (i=1;i<=8-count;i++) printf("0");
printf("\n");
return ;
}
printf("0.");
count=0;
for (i=1;i<=zhi-1;i++){
printf("0");
count++;
}
for (i=0;i<strlen(number);i++){
printf("%c",number[i]);
count++;
if (count==8){
printf("\n");
return ;
}
}
for (i=1;i<=8-count;i++) printf("0");
printf("\n");
}
int main(){
int count_zheng=0,count_xiao,i=0,flag=1,flag_fushu=0,flag_fuzhi=0,zhi=0,flag_0=1;
char b;
do {
b=getchar();
if (b==' '||b=='e'||b=='E') break;
if (b=='-'){
flag_fushu=1;
continue;
}
if (b=='.'){
flag=0;
continue;
}
number[i++]=b;
if (flag) count_zheng++;
}while (b!=' '&&b!='e'&&b!='E');
number[i]='\0';
count_xiao=strlen(number)-count_zheng;
while (b==' '||b=='E'||b=='e'){
b=getchar();
}
if (b=='-'){
flag_fuzhi=1;
b=getchar();
}
i=0;
while(b>='0'&&b<='9'){
z[i++]=b;
b=getchar();
if (!(b>='0'&&b<='9')) break;
}
z[i]='\0';
for (i=0;i<strlen(z);i++){
zhi=zhi*10+z[i]-'0';
}
if (flag_fushu) printf("-");
for (i=0;i<strlen(number);i++) if (number[i]!='0') flag_0=0;
if (flag_0){
printf("0.00000000\n");
return 0;
}
if (flag_fuzhi) kefu(zhi,count_zheng,count_xiao);
else kezheng(zhi,count_zheng,count_xiao);
return 0;
}