C training job
July 19, 2017
1. Realize the reverse of the string. For example: input abcdef, output fedcba
/*-------------------------------------------------------------------
@功能:实现字符串的翻转。例如:输入abcdef,输出fedcba
@日期:2017年7月19日
-------------------------------------------------------------------*/
#include"stdio.h"
#include"string.h" //用到了string.h中的strlen()函数。
/*
函数原型声明
*/
void input_string(char str[]); //输入接受函数
void change_string(char str[]); //字符翻转函数
/*
@定位:主函数main()
*/
int main(void)
{
char str[30]=""; //定义字符数组str,并初始化。
input_string(str); //调用,输入数据。
change_string(str); //调用,数据处理。
puts(str); //直接输出
return 0;
}
/*
@定位:子函数change_string()
@功能:字符翻转
@返回值:无
@形参:字符数组地址
*/
void change_string(char str[])
{
char temp=0;
int i=0;
int len=strlen(str)-1;
while(i<=len/2) //循环次数
{
temp=str[i];
str[i]=str[len-i]; //镜像交换
str[len-i]=temp;
i++;
}
}
/*
@定位:子函数input_string()
@功能:输入接受
@返回值:无
@形参:字符数组地址
*/
void input_string(char str[])
{
printf("please input your string!\n");
scanf("%s",str);
}
operation result
[root@localhost Kshine]# gcc test13.c -o test
[root@localhost Kshine]# ./test
please input your string!
Kshine2017
7102enihsK
2. Print k prime numbers that are greater than the integer m and close to m
/*------------------------------------------------------------------
功能:请编写一个函数int printPrime(int m,int k,int arr[]),
该函数的功能是:将大于整数m且紧靠m的k个素数存入数组arr中。
其中k表示数组arr的所指的数组中
--------------------------------------------------------------------*/
#include"stdio.h"
/*
函数原型声明
*/
void go(); //控制总运行的函数
void output_arr(int k,int arr[]); //输入打印数组
void print_Prime(int m,int k,int arr[]); //数据处理,将相关的素数存入数组
int is_Prime(int num); //判断是否为素数
/*
@定位:主函数main()
*/
int main()
{
go(); //总运行
return 0;
}
/*
@定位:子函数go()
@功能:集合所有步骤,控制总开断
@返回值:无
@形参:无
*/
void go()
{
int m=0,k=0; //数据定义及初始化
int arr[20]={0}; //数组定义及初始化
printf("请输入数字和个数:\n");
scanf("%d%d",&m,&k); //输入接受数据
print_Prime(m,k,arr); //数据处理,将相关素数存入arr
output_arr(k,arr); //输出arr中的元素
}
/*
@定位:子函数print_Prime()
@功能:将m后的k个素数存入数组
@返回值:无
@形参:目标数字,素数个数,以及数组的地址
*/
void print_Prime(int m,int k,int arr[])
{
int counter=0,num=m+1;
printf("大于整数m且紧靠m的k个素数:\n");
for(;;)
{
if(is_Prime(num)) //判断为真,则是素数
{
arr[counter]=num; //先 存入该素数
counter++; //再 计数
// printf("%d\t",num);//该函数的定义,只是将数据存在数组里。
}
num++;
if(counter==k) //得到k个素数
{
break;
}
}
}
/*
@定位:子函数is_Prime()
@功能:判断是否为素数
@返回值:是素数则1,否则为0
@形参:待判断的数字
*/
int is_Prime(int num)
{
int i=2,flag=0;
if(num==2) //将num==2的情况,单独给出结果
{
return 1;
}
for(i=2;i<num/2;i++)
{
if(num%i)
{
flag=1; //flag==1,该数字可能为素数
}
else
{
flag=0; //flag==0,一定不是素数
break; //不是素数,直接跳出循环
}
}
if(flag==1) //经过循环,仍旧为1,则判定为素数
{
return 1;
}
return 0;
}
/*
@定位:子函数output_arr()
@功能:输出显示数组中的元素
@返回值:无
@形参:输出的元素个数k,以及数组的地址
*/
void output_arr(int k,int arr[])
{
int i=0;
for(i=0;i<k;i++)
{
printf("%d\t",arr[i]);
}
printf("\n");
}
operation result:
[root@localhost Kshine]# gcc test14.c -o test
[root@localhost Kshine]# ./test
请输入数字和个数:
10 3
大于整数m且紧靠m的k个素数:
11 13 17
[root@localhost Kshine]# ./test
请输入数字和个数:
55 7
大于整数m且紧靠m的k个素数:
59 61 67 71 73 79 83
3. Enter 10 integer numbers and sum them
/*-------------------------------------------------------------
定义一个可以保存10个元素的整型数组,从终端上输入给数组赋值,
最后求出数组中所有元素的和并输出。(要求输入和计算所有元素的和要有函数设计)
-----------------------------------------------------------------------*/
#include"stdio.h"
/*
函数原型声明
*/
void go(); //总控制函数
void input_num(int arr[]); //输入接受函数
int sum_num(int arr[]); //求和函数
void output_num(int arr[]); //输出显示函数
/*
@定位:主函数main()
*/
int main()
{
go(); //总运行
return 0;
}
/*
@定位:子函数go()
@功能:控制总运行
@返回值:无
@形参:无
*/
void go()
{
int arr[10]={0};
input_num(arr);
// sum_num(arr); //已经在 输出函数中 调用了。//已注释掉
output_num(arr);
}
/*
@定位:子函数input_num()
@功能:键盘输入,循环接受数据
@返回值:无
@形参:数组地址
*/
void input_num(int arr[])
{
int i=0;
printf("请输入10个整数,用于组成一个数组:\n");
for(i=0;i<10;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&arr[i]);
printf("\n");
}
}
/*
@定位:子函数sun_num()
@功能:计算数组中元素之和
@返回值:sum,元素之和
@形参:数组地址
*/
int sum_num(int arr[])
{
int i=0,sum=0;
for(i=0;i<10;i++)
{
sum+=arr[i];
}
return sum;
}
/*
@定位:子函数output_num()
@功能:输出数组元素和和
@返回值:无
@形参:数组地址
*/
void output_num(int arr[])
{
int i=10;
for(i=0;i<10;i++)
{
printf("%d\t",arr[i]);
}
printf("\n数组中元素之和为:%d\n",sum_num(arr));
}
operation result:
[root@localhost Kshine]# gcc test15.c -o test
[root@localhost Kshine]# ./test
请输入10个整数,用于组成一个数组:
请输入第1个数:23
请输入第2个数:3
请输入第3个数:13
请输入第4个数:21
请输入第5个数:12
请输入第6个数:56
请输入第7个数:45
请输入第8个数:2
请输入第9个数:3
请输入第10个数:1
23 3 13 21 12 56 45 2 3 1
数组中元素之和为:179