1、编写一个函数 my power,用循环的方法实现返回一个 foat 类型数的某个整数次幂(保留6位小数)。例如:
调用 my power(3.14,-2)返回 0.101424
float my_power(float x, int n){
if(n == 0)
return 1;
if (n<0)
{
x = 1/x;
n = -n;
}
float result = x;
for(int i=1; i<n; i++){
result*= x;
}
return result;
}
2、编写一个程序,将两个字符串连接起来,不要用strcat或 strncat 函数
#include <stdio.h>
#include <stdlib.h>//分配内存空间
#include <string.h>//字符串操作函数
char* merge(char *str1, char *str2){
int len1=strlen(str1);
int len2=strlen(str2);
char* result = (char*)malloc(len1+len2+1);//定义字符串result,并且分配内存空间
for(int i=0; i<len1; i++){//把字符串str1复制到result中
result[i]=str1[i];
}
for(int i=0; i<len2; i++){//把字符串str2复制到result中
result[len1+i]=str2[i];
}
result[len1+len2]='\0';//字符串结束符
return result;
}
int main(int argc, char const *argv[])
{
char str1[]="hello";
char str2[]="world";
char *result=merge(str1, str2);
printf("%s\n", result);
return 0;
}
3、编写一个函数 Fibonacci(),要求程序输出第n项斐波那契数,n 由用户输入。
斐波那契数列:1,1,2,3,5,8,13,21,….. …
int Fibonacci(int n){
if(n == 1 || n == 2)
return 1;
else if(n > 2)
return Fibonacci(n-1) + Fibonacci(n-2);
}
编写一个函数,求两个整数的最大公约数,用主函数调用这个函数并输出结果,两个整数由键盘输入。(提示:用辗转相除法求最大公约数)
#include <stdio.h>
int gcd(int a,int b){//辗转相除法
int temp;
while(b!=0){
temp=b;
b=a%b;
a=temp;
}
return a;
}
int main(int argc, char const *argv[])
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",gcd(a,b));
return 0;
}
编写一个程序,清除用户输入字符串中的空格符并将之输出。(例如用户输入”ab”,输出”ab”)
#include <stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{
char ch;
char str[100];
int j=0;//这里我用排队算法,用一个变量j来记录当前的位置,从0开始。
while((ch=getchar())!='\n'){
if(ch!=' '){
str[j++]=ch;//如果不是空格,就把字符存到str数组中。遇见空格跳过
}
}
str[j]='\0';//字符串末尾加上结束符
printf("%s\n",str);
return 0;
}