1.
#include <stdio.h>
//定义递归函数
int nk(int n,int k)
{
if(k==0)
{
return 1;
}else
{
return n*nk(n,k-1);
}
}
int main(int argc, const char *argv[])
{
int n=0,k=0;
printf("请输入元素n和次方数k:\n");
scanf("%d%d",&n,&k);
int res=nk(n,k);
printf("%d\n",res);
return 0;
}
2.
4.
#include <stdio.h>
#include<string.h>
//定义一个排序函数
void sort_1(char arr[],int n)
{
char temp='0';
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(arr[j]-arr[j+1]<0)
{
temp=arr[j];
arr[j]=arr[j+1];;
arr[j+1]=temp;
}
}
}
printf("排序后:%s\n",arr);
}
int main(int argc, const char *argv[])
{
int len=0;
char arr[20]={0};
printf("输入:\n");
gets(arr);
len=strlen(arr);
sort_1(arr,len);
return 0;
}
5.
#include <stdio.h>
#include<string.h>
int huiwen(char arr[],int n)
{
int i=0,j=0;
char temp[20]="";
char str[20]="";
for(int i=0;i<n/2;i++)
{
temp[i]=arr[i];
}
if(n%2==0)
{
for(int i=n-1;i>=n/2;i--)
{
str[j]=arr[j];
j++;
}
}
else
{
for(int i=n-1;i>n/2;i--)
{
str[j]=arr[i];
j++;
}
}
if(strcmp(str,temp)==0)
{
return 1;
}
}
int main(int argc, const char *argv[])
{
int len=2,set=0;
char str[20]="";
printf("输入字符串:");
gets(str);
len=strlen(str);
set=huiwen(str,len);
switch(set)
{
case 1:
printf("是回文字符\n");
break;
default:
printf("并非回文字符\n");
break;
}
return 0;
}
6.
7.
#include <stdio.h>
#define MAX 100
//定义一个函数统计单词数量
void count_1(char *str)
{
int count=0; //定义计数变量
while(1)
{
if((*str>=65&&*str<=90)||(*str>=97&&*str<=122)) //遇见字母指针偏移+1
{
*str++;
}else if(*str==32) //遇见空格计数+1
{
*str++;
count++;
}else //遇见标点符号计数,再偏移判断
{
count++;
*str++;
if(*str==32) //标点后的空格意味着两者共享一个单词
{
*str++;
}else if(*str=='\0') //标点后的休止,段落结束
{
break;
}else
{
*str++;
}
}
}
printf("%d\n",count);
}
int main(int argc, const char *argv[])
{
char text[MAX]="";
printf("请输入一段文本:");
gets(text);
count_1(text);
return 0;
}
思维导图