add(int
x,int
y)
int
sub(int
x,int
y)
int
mul(int
x,int
y)
int
div(int
x,int
y)
#include
<math.h>
#include
<stdio.h>
void
main()
{
int
a,b,c,d,e,f,g,h,i
printf("XXXXXXXXXXXXXXX计算器")
printf("\n")
for(c=1c<=30c++)
printf("*")
printf("\n")
printf("请输入一个整数")
printf("\n")
scanf("%d",&a)
printf("\n")
for(c=1c<=30c++)
printf("-")
printf("\n")
printf("请选择您要做的运算:1.+,2.-,3.*,4./5.abs,6.sqrt")
printf("\n")
for(c=1c<=30c++)
printf("*")
printf("\n")
scanf("%d",&d)
printf("\n")
if(d==5)
{printf("%d",abs(a))goto
end}(如果想做绝对值,就直接做abs函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)
if(d==6)
{printf("%.2f",sqrt(a))goto
end}}(如果想做开平方,就直接做sqrt函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)
printf("请再次输入一个整数")
(如果是做双目的就开始输入第二个数b)
printf("\n")
scanf("%d",&b)
printf("\n")
switch(d)
{
case
1:add(a,b)break
case
2:sub(a,b)break
case
3:mul(a,b)break
case
4:div(a,b)break
default:printf("date
input
error!\n")
}
end:
printf("\n")}
int
add(int
x,int
y)
{
int
m
m=x+y
printf("%d",m)
return
m
}
int
sub(int
x,int
y)
{
int
m
m=x-y
printf("%d",m)
return
m
}
int
mul(int
x,int
y)
{
int
m
m=x*y
printf("%d",m)
return
m
}
int
div(int
x,int
y)
{
int
m
m=x/y
printf("%d",m)
return
m
}
(你试试看吧!应该可以!呵呵)
程序的大体思路可以是这样:str1是原字符串,str2是待插入的字符串,position是待插入的位置,我们可以这样,用一个指针p_cur指向字符串1 str1中的待插入位置position,另一个指针p_end指向字符串1 str1的尾部,每次插入字符前,把str1中从当前位置开始一直到结束字符全部后移一个位置,空出当前位置,然后把要插入的字符放进这个位置,这样就完成了一个字符的插入,重复这个步骤,直到str2被完全插入。
代码如下:
#include <stdio.h>
#include <string.h>
void insert_str(char str1[],char str2[],int position)
{
/*
insert_str()函数
功能:将字符串str2插入到str1的position位置处
参数:char str1,char str2 ,int position
返回值:无
*/
int i
char *p_end,*p_cur,*p/*p_end指向第一个字符串的尾部,p_cur指向被插入的位置*/
p_end=str1+strlen(str1)-1
p_cur=str1+position-1
for(i=0str2[i]!='\0'i++)
{
for(p=p_endp>=p_curp--)
{
*(p+1)=*p/*从p_cur到p_end的全部元素后移一个位置,此时p_cur指向的位置就空出来了*/
}
*p_cur=str2[i]/*把字符串2中的字符插入空出来的位置*/
p_cur++/*p_cur下移一个位置*/
p_end++/*多了一个字符,因此p_end也下移一个位置*/
}
}
void main()
{
char s1[100],s2[20]
int position
printf("输入字符串1:\n")
gets(s1)
printf("输入插入位置:")
do
{
scanf("%d",&position)
while(getchar()!='\n')/*这一句可以把输入position的时候输入的回车去掉*/
}while(position<0||position>strlen(s1))
printf("输入字符串2:\n")
gets(s2)
insert_str(s1,s2,position)
printf("字符串被插入后变成:\n")
puts(s1)
}
表示“插入”,它并不是C语言的一部分,用在函数名中可以表示插入元素。例题:
#include <iostream>
#include <vector>
using namespace std
int main()
{
vector<int>intArray
int i
for(i=0i<10i++)
{
intArray.push_back(i)
cout<<intArray[i]<<" "
}
cout<<endl
intArray.insert(intArray.begin()+1,intArray.begin()+3,intArray.begin()+5)
for(i=0i<intArray.size()i++)
cout<<intArray[i]<<" "
system("pause")
return 0
}