1.输入.123456 输出0.123456
#include <stdio.h>
int main()
{
char s[7];
int i,sum=0;
float x=0,k=0.1;
gets(s);
for(i=1;s[i];i++)
{
if(s[i]>=48&&s[i]<=57)
{
x+=(float)(s[i]-48)*k;
k/=10;
}
}
printf("%f
",x);
return 0;
}
2.
*
***
*****
*******
*****
***
*
#include <stdio.h>
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
puts("");
}
for(i=n-1;i>=1;i--)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
puts("");
}
return 0;
}
3.输入352 输出352
注意:程序中输入数据只能用getchar(),不允许用scanf(),也不允许用数组。
#include <stdio.h>
int main()
{
int i,x=0;
char c;
c=getchar();
while(c>='0'&&c<='9')
{
c-=48;
x=x*10+c;
c=getchar();
}
printf("%d
",x);
return 0;
}
4.判断是否为素数
#include <stdio.h>
#include <math.h>
int main()
{
int n,i,k;
scanf("%d",&n);
if(n==1)
{
printf("NO
");
return 0;
}
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
break;
if(i>k)
printf("YES
");
else
printf("NO
");
return 0;
}
5.G总共有n个台阶,每次可以跨1个台阶,也可以跨2个台阶,问,有多少种上法?
例如, 若有3个台阶可以有3种上法:
(1)1+1+1(跨1个,跨1个,跨1个)
(2)1+2 (跨1个,跨2个)
(2)2+1(跨2个,跨1个)
Input
键盘输入台阶数
Output
给出方案数
Sample Input
3
Sample Output
3
(递归)
#include <stdio.h>
int fun(int n)
{
int m;
if(n==1)
return 1;
else if(n==2)
return 2;
else
m=fun(n-1)+fun(n-2);
return m;
}
int main()
{
int n,m;
scanf("%d",&n);
m=fun(n);
printf("%d",m);
return 0;
}
6.十进制转换成二进制(多组输入)
#include <stdio.h>
#include <stdio.h>
int fun(int n)
{
if(n==0)
return 1;
fun(n/2);
printf("%d",n%2);
return n;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==0)
printf("0");
else
fun(n);
puts("");
}
return 0;
}
7.指针被调求最大公约数与最小公倍数
#include <stdio.h>
int main()
{
void sub(int a,int b,int *m,int *n);
int a,b,m,n;
scanf("%d,%d",&a,&b);
sub(a,b,&m,&n);
printf("%d,%d,a=%d,b=%d
",m,n,a,b);
return 0;
}
void sub(int a,int b,int *m,int *n)
{
int t,i,c;
if(a<b)
{
t=a;a=b;b=t;
}
for(i=a;i<=a*b;i+=a)
if(i%b==0)
break;
*m=i;
c=a%b;
for(i=1;c!=0;i++)
{
a=b;b=c;c=a%b;
}
*n=b;
}
8.一个球从一百米高空坠下,每次落地后反弹高度的一半,再落下反弹……第10次落地时,经过了多少路程,第10次反弹多高。
#include <stdio.h>
int main()
{
int t,i;
double a=100,s=100;
for(i=1; i<9; i++)
{
a=a/2;
s+=(a*2);
}
printf("%f
",s);
for(t=1; t<10; t++)
a=a/2;
printf("%f",a);
return 0;
}
9.局部静态变量
~1!+2!+3!+……+n!
#include <stdio.h>
int super(int i)
{
static int f=1;
f*=i;
return f;
}
int main()
{
int i,n,f,s=0,super(int);
scanf("%d",&n);
for(i=1; i<=n; i++)
{
f=super(i);
s+=f;
}
printf("%d
",s);
return 0;
}
10 输入1 3 5 7 9 11 13 15 17 19 12 将12插入按顺序输出
#include <stdio.h>
int main()
{
int i,a[11],n,t;
for(i=0; i<=9; i++)
scanf("%d",&a[i]);
scanf("%d",&n);
for(i=0; i<=9; i++)
if(a[i]>n)
{
t=a[i];
a[i]=n;
n=t;
}
a[10]=n;
for(i=0; i<=9; i++)
printf("%d ",a[i]);
printf("%d",a[10]);
return 0;
}
11 将不重复的数输出
#include <stdio.h>
int main()
{
int i,a[10],j,k=0,e=0;
for(i=0; i<=9; i++)
scanf("%d",&a[i]);
for(i=0; i<=9; i++)
{
for(j=0; j<=9; j++)
{
if((a[i]==a[j])&&(i!=j))
{
k++;
break;
}
if(j==9)
{
if(e==0)
printf("%d",a[i]);
else
printf(" %d",a[i]);
e++;
}
}
}
if(k==10)
printf("No");
return 0;
}
12 输入10个数 统计每次出现的次数
#include <stdio.h>
int main()
{
int a[10],i,s,j,p;
for(i=0; i<=9; i++)
scanf("%d",&a[i]);
for(i=0; i<=9; i++)
{
p=0,s=0;
for(j=0; j<10; j++)
{
if(a[i]==a[j])
s++;
}
for(j=0; j<i; j++)
if(a[i]==a[j])
p=1;
if(p==0)
printf("%d:%d
",a[i],s);
}
return 0;
}
13 不管键盘输入什么数 数组只接收不重复的数
#include <stdio.h>
int main()
{
int a[20],i,j;
char c;
for(i=0; i<=9';i++)
{
scanf("%d%c",&a[i],&c);
for(j=0;j<i;j++)
if(a[i]==a[j]&&i!=j)
{
i--;
break;
};
}
for(i=0;i<=9;i++)
printf("%d
",a[i]);
return 0;
}