C语言,编写自定义函数。急急急!!!谢谢 30
C语言,编写自定义函数。急急急!!!谢谢请编写自定义的函数,完成以下对字符串的操作:1将一个字符串复制到另一个中2将两个字符串进行比较3将一个字符串添加到另一个字符串的后...
C语言,编写自定义函数。急急急!!!谢谢请编写自定义的函数,完成以下对字符串的操作:
1将一个字符串复制到另一个中
2将两个字符串进行比较
3将一个字符串添加到另一个字符串的后面
在主程序中进行测试。 展开
1将一个字符串复制到另一个中
2将两个字符串进行比较
3将一个字符串添加到另一个字符串的后面
在主程序中进行测试。 展开
3个回答
展开全部
有疑问问#include #include #include double EPS=10E-6; double sum(double a,double b) { return a+b; } double sub(double a,double b) { return a-b; } double mul(double a,double b) { return a*b; } double divv(double a,double b) { return a/b; } int rem(int a , int b) { return a%b; } int addnumber(int c,int d) { int sum=0; for(int i=c;i<=d;i++) { sum+=i; } return sum; } int factor(int n) { int f=1; for(int i=1;i<=n;i++) { f*=i; } return f; } void displaymenu() { printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n"); printf("*############高级计算器############* \n"); printf("************************************ \n"); printf("* ①加法运算 * \n"); printf("* ②减法运算 * \n"); printf("* ③乘法运算 * \n"); printf("* ④除法运算 * \n"); printf("* ⑤取余运算 * \n"); printf("* ⑥累加运算 * \n"); printf("* ⑦阶乘运算 * \n"); printf("* ⊙结束运算 * \n"); printf("************************************ \n"); printf("************************************ \n"); } void main() { int c,d; /*用于做四则运算的两个数值的说明*/ double a,b; /*用来做累加函数的两个参数值的说明*/ int intresult; double result; /*用于保存表单运算中函数的返回值*/ int choice; displaymenu();/*保存用户选择项目菜单项*/ while(1) { printf("请选择你所进行运算项目的符号:"); scanf("%d",&choice); switch(choice) { case 1: /*加法计算*/ printf("请输入两个数字:"); scanf("%lf%lf",&a,&b); result=sum(a,b); printf("%lf+%lf的计算结果是:%lf\n",a,b,result); break; case 2: /*减法计算*/ printf("请输入两个数字:"); scanf("%lf%lf",&a,&b); result=sub(a,b); printf("%lf-%lf的计算结果是:%lf\n",a,b,result); break; case 3: /*乘法计算*/ printf("请输入两个数字:"); scanf("%lf%lf",&a,&b); result=mul(a,b); printf("%lf*%lf的计算结果是:%lf\n",a,b,result); break; case 4: /*除法计算*/ { scanf("%lf%lf",&a,&b); if(b-0.0<EPS) printf("数字错误\n"); else { printf("请输入两个数字:"); result=divv(a,b); printf("%lf/%lf的计算结果是:%lf\n",a,b,result); } break; } case 5: /*取余计算*/ printf("请输入两个数字:"); scanf("%d%d",&c,&d); result=rem(c,d); printf("%d % %d的计算结果是:%d\n",c,d,result); break; case 6: /*累加计算*/ printf("请输入两个整数"); scanf("%d%d",&c,&d); intresult=addnumber(c,d); printf("%d-%d的累加计算结果是:%d\n",c,d,intresult); break; case 7: //阶乘计算 { printf("请输入一个大于0小于10的整数字"); scanf("%d",&c); if(c10) { printf("请输入一个大于0小于10的整数字,数据错误。\n"); break; } intresult=factor(c); printf("%d的阶乘计算结果是:%d\n",c,intresult); break; } case 0: printf("谢谢使用。欢迎下次再用。\n"); return ; default: printf("选择错误,程序结束\n"); break; } } }
展开全部
#include <stdio.h>
char *myMemcpy(char *dst,char *src)
{
//参数检查
if (!src || !dst)
return NULL;
//源和目的相同,返回
if (src == dst)
return src;
char *temp = dst;
while(*src != '\0')
*temp++ = *src++;
*temp = '\0';
return dst;
}
int myMemcmp(char *str1,char *str2)
{
//参数检查,-2错误
if (!str1 || !str2)
return -2;
//相同,返回0
if (str2 == str1)
return 0;
while(*str1 != '\0' && *str2 !='\0'){
if (*str1 == *str2){
++str1;
++str2;
continue;
}
else if (*str1 < *str2)
return -1; //小于,返回-1
else
return 1; //大于,返回1
}
if (*str1 == '\0' && *str2 == '\0')
return 0; //相同
else if (*str1 == '\0')
return -1;
else
return 1;
}
//dst最好初始化为0且足够大,str2拼接到str1后面,放到dst中
void myStrCat(char *dst,char *str1,char *str2)
{
//参数检查,-2错误
if (!str1 || !str2 || !dst)
return;
//myMemcpy(dst,str1);
//int i = strlen(dst);
int i = 0;
while (str1[i] != '\0')
{
dst[i] = str1[i];
++i;
}
while (*str2 != '\0')
{
dst[i] = *str2++;
++i;
}
return;
}
int main()
{
char *test = "gjkgkagjkdlagmal";
char a[100] = {0}; //要求空间足够大
printf("before test:\n test=%s,a=%s\n",test,a);
myMemcpy(a,test);
printf("after test:\n test=%s,a=%s\n",test,a);
char *str1 = "gdjgajgdjgaz";
char *str2 = "";
printf("比较结果:%d\n",myMemcmp(str1,str2));
char dst[1000] = {0};
myStrCat(dst,test,str2);
printf("拼接结果:%s\n",dst);
return 0;
}
代码大概写了一下!应该没有什么问题!如有遗漏,及时联系我进行修正
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-06-06
展开全部
# include # include# include int fun(int yms[][3]) { /*****************************PROGRAM**********************/ int a,b,c,flag[10]={0}; unsigned i,j=0; char mystring[20]; for(a=10;a<=999;a++) { for(b=999;b<9999;b++) { c=a+b; sprintf(mystring,"%d%d%d",a,b,c); if((strlen(mystring)==10)&&(c<10000)) { for(i=0;i<10;i++) { flag[(mystring[i]-'0')]=1; } for(i=0;i<10;i++) { if(flag[i]!=1) { break; } } if(i==10) { yms[j][0]=a; yms[j][1]=b; yms[j++][2]=c; } } for(i=0;i<10;i++) { flag[i]=0; } } } return j; /**************************END***************************/}int main(){ int yms[10000][3],i,n; FILE *fp; n=fun(yms); if((fp=fopen("data.txt","w"))==NULL) { printf("File open error\n"); exit(0); } for(i=0;i
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询