额,还是ce
by 伯伦希尔001 @ 2019-02-02 16:59:58
@[AcceptAutoMachine](/space/show?uid=102080) 因为编译器提示这样写安全
by 伯伦希尔001 @ 2019-02-02 17:00:37
@[伯伦希尔001](/space/show?uid=150418) 把scanf_s换成scanf
by AfterOI @ 2019-02-02 17:01:45
@[AfterOI](/space/show?uid=157622) 有用
by 伯伦希尔001 @ 2019-02-02 17:03:10
还有你用哪款IDE啊
luoguIDE上写明了:
```cpp
/tmp/tmphxaqadis/src: 在函数‘int main()’中:
/tmp/tmphxaqadis/src:7:5: 错误:‘scanf_s’在此作用域中尚未声明
scanf_s("%d",&n);
^~~~~~~
/tmp/tmphxaqadis/src:7:5: 附注:suggested alternative: ‘scanf’
scanf_s("%d",&n);
^~~~~~~
scanf
```
by AfterOI @ 2019-02-02 17:03:40
@[AfterOI](/space/show?uid=157622) vc2010
by 伯伦希尔001 @ 2019-02-02 17:06:56
求大佬再帮忙看下这个也是ce```c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
long int Integer(char a[]); /*整数*/
void Decimal(char a[]); /*小数*/
void Fraction(char a[]); /*分数*/
void Percentage(char a[]); /*百分数*/
void Classify(char a[]); /*分类*/
int I;
int main()
{
char a[21];
gets(a);
Classify(a);
return 0;
}
void Classify(char a[]) /*分类*/
{
int i,j=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]!='.'&&a[i]!='/'&&a[i]!='%')
{
j=4;
}
}
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='.'&&a[i]!='/'&&a[i]!='%')
{
j=1;
}
}
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='/'&&a[i]!='.'&&a[i]!='%')
{
j=2;
}
}
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='%'&&a[i]!='.'&&a[i]!='/')
{
j=3;
}
}
if(j==1) Decimal(a);
if(j==2) Fraction(a);
if(j==3) Percentage(a);
if(j==4) printf("%ld",Integer(a));
}
long int Integer(char a[]) /*整数*/
{
int i,j;
long int c;
char b[21];
I=strlen(a)-1;/*测量数组长度*/
for(i=I,j=0;i>=0;j++,i--) /*反转*/
{
b[j]=a[i];
}
b[j]='\0';
c=atol(b); /* 变成数值类型*/
return c;
}
void Decimal(char a[]) /*小数*/
{
int i,j,temp;
long int B,C;
char b[11],c[11];
for(i=0;a[i]!='\0';i++) /*该循环作用是将小数部分和整数部分分成两个部分分别存放到不同数组中*/
{
if(a[i]!='.')
{
b[i]=a[i];/*在遇到小数点前将整数部分转移到字符数组b中*/
temp=i;
}
if(a[i]=='.') /*在遇到小数点后*/
{
for(i=i+1,j=0;a[i]!='\0';j++,i++)
{
c[j]=a[i]; /*将小数部分转移到字符数组c中*/
}
break; /*跳出循环*/
}
}
b[temp+1]='\0';
B=Integer(b); /*将整数部分反转*/
C=atol(c); /*将小数部分变为数值类型存到整型变量C中*/
itoa(C,c,10); /*将整型变量C中的整数编程字符串数组的形式,以便直接调用函数integer*/
C=Integer(c); /*将小数部分反转*/
printf("%ld.%ld",B,C);
}
void Fraction(char a[]) /*分数*/
{
int i,j,temp;
long int B,C;
char b[11],c[11];
for(i=0;a[i]!='\0';i++) /*该循环作用是将小数部分和整数部分分成两个部分分别存放到不同数组中*/
{
if(a[i]!='/')
{
b[i]=a[i];/*在遇到小数点前将整数部分转移到字符数组b中*/
temp=i;
}
if(a[i]=='/') /*在遇到小数点后*/
{
for(i=i+1,j=0;a[i]!='\0';j++,i++)
{
c[j]=a[i]; /*将小数部分转移到字符数组c中*/
}
break; /*跳出循环*/
}
}
b[temp+1]='\0';
B=Integer(b); /*将整数部分反转*/
C=atol(c); /*将小数部分变为数值类型存到整型变量C中*/
itoa(C,c,10); /*将整型变量C中的整数编程字符串数组的形式,以便直接调用函数integer*/
C=Integer(c); /*将小数部分反转*/
printf("%ld/%ld",B,C);
}
void Percentage(char a[]) /*百分数*/
{
int i;
long int B;
char b[20];
for(i=0;a[i+1]!='\0';i++) /*将百分号前面的提取出来保存到字符数组b中*/
{
b[i]=a[i];
}
b[i]='\0';
B=Integer(b); /*将百分号前面的数反转*/
printf("%ld%%",B);
}
```
by 伯伦希尔001 @ 2019-02-02 17:08:20
```c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
long int Integer(char a[]); /*整数*/
void Decimal(char a[]); /*小数*/
void Fraction(char a[]); /*分数*/
void Percentage(char a[]); /*百分数*/
void Classify(char a[]); /*分类*/
int I;
int main()
{
char a[21];
gets(a);
Classify(a);
return 0;
}
void Classify(char a[]) /*分类*/
{
int i,j=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]!='.'&&a[i]!='/'&&a[i]!='%')
{
j=4;
}
}
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='.'&&a[i]!='/'&&a[i]!='%')
{
j=1;
}
}
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='/'&&a[i]!='.'&&a[i]!='%')
{
j=2;
}
}
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='%'&&a[i]!='.'&&a[i]!='/')
{
j=3;
}
}
if(j==1) Decimal(a);
if(j==2) Fraction(a);
if(j==3) Percentage(a);
if(j==4) printf("%ld",Integer(a));
}
long int Integer(char a[]) /*整数*/
{
int i,j;
long int c;
char b[21];
I=strlen(a)-1;/*测量数组长度*/
for(i=I,j=0;i>=0;j++,i--) /*反转*/
{
b[j]=a[i];
}
b[j]='\0';
c=atol(b); /* 变成数值类型*/
return c;
}
void Decimal(char a[]) /*小数*/
{
int i,j,temp;
long int B,C;
char b[11],c[11];
for(i=0;a[i]!='\0';i++) /*该循环作用是将小数部分和整数部分分成两个部分分别存放到不同数组中*/
{
if(a[i]!='.')
{
b[i]=a[i];/*在遇到小数点前将整数部分转移到字符数组b中*/
temp=i;
}
if(a[i]=='.') /*在遇到小数点后*/
{
for(i=i+1,j=0;a[i]!='\0';j++,i++)
{
c[j]=a[i]; /*将小数部分转移到字符数组c中*/
}
break; /*跳出循环*/
}
}
b[temp+1]='\0';
B=Integer(b); /*将整数部分反转*/
C=atol(c); /*将小数部分变为数值类型存到整型变量C中*/
itoa(C,c,10); /*将整型变量C中的整数编程字符串数组的形式,以便直接调用函数integer*/
C=Integer(c); /*将小数部分反转*/
printf("%ld.%ld",B,C);
}
void Fraction(char a[]) /*分数*/
{
int i,j,temp;
long int B,C;
char b[11],c[11];
for(i=0;a[i]!='\0';i++) /*该循环作用是将小数部分和整数部分分成两个部分分别存放到不同数组中*/
{
if(a[i]!='/')
{
b[i]=a[i];/*在遇到小数点前将整数部分转移到字符数组b中*/
temp=i;
}
if(a[i]=='/') /*在遇到小数点后*/
{
for(i=i+1,j=0;a[i]!='\0';j++,i++)
{
c[j]=a[i]; /*将小数部分转移到字符数组c中*/
}
break; /*跳出循环*/
}
}
b[temp+1]='\0';
B=Integer(b); /*将整数部分反转*/
C=atol(c); /*将小数部分变为数值类型存到整型变量C中*/
itoa(C,c,10); /*将整型变量C中的整数编程字符串数组的形式,以便直接调用函数integer*/
C=Integer(c); /*将小数部分反转*/
printf("%ld/%ld",B,C);
}
void Percentage(char a[]) /*百分数*/
{
int i;
long int B;
char b[20];
for(i=0;a[i+1]!='\0';i++) /*将百分号前面的提取出来保存到字符数组b中*/
{
b[i]=a[i];
}
b[i]='\0';
B=Integer(b); /*将百分号前面的数反转*/
printf("%ld%%",B);
}
```
by 伯伦希尔001 @ 2019-02-02 17:08:40
这个
by 伯伦希尔001 @ 2019-02-02 17:09:18