Ⅰ c语言 虚数的四则运算 高手帮帮忙!!!!
回答的也太快了吧!我刚输完就有这么多了!
还好我这是纯c语言版。
输入数据是实属部分和虚数部分用逗号隔开。
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
double real; /*实数部分*/
double vir; /*虚数部分*/
}COMPLEX;
COMPLEX add(COMPLEX a,COMPLEX b);
COMPLEX substract(COMPLEX a,COMPLEX b);
COMPLEX multiple(COMPLEX a,COMPLEX b);
COMPLEX divide(COMPLEX a,COMPLEX b);
void printC(COMPLEX n)
{
if((n.vir - 0.00) < 0)
printf("(%.4lf%.4lfi)",n.real,n.vir);
else
printf("(%.4lf+%.4lfi)",n.real,n.vir);
}
void main()
{
COMPLEX a,b;
char c;
printf("input real and virtual of complex number a:");
scanf("%lf,%lf",&a.real,&a.vir);
fflush(stdin);
printf("input real and virtual of complex number b:");
scanf("%lf,%lf",&b.real,&b.vir);
c = '+';
printC(a); printf(" %c ",c); printC(b); printf(" = ");
printC(add(a,b));
putchar('\n');
c = '-';
printC(a); printf(" %c ",c); printC(b); printf(" = ");
printC(substract(a,b));
putchar('\n');
c = '-';
printC(a); printf(" %c ",c); printC(b); printf(" = ");
printC(multiple(a,b));
putchar('\n');
c = '/';
printC(a); printf(" %c ",c); printC(b); printf(" = ");
printC(divide(a,b));
putchar('\n');
system("pause");
}
COMPLEX add(COMPLEX a,COMPLEX b)
{
COMPLEX c;
c.real = a.real + b.real;
c.vir = a.vir + b.vir;
return c;
}
COMPLEX substract(COMPLEX a,COMPLEX b)
{
COMPLEX c;
c.real = a.real - b.real;
c.vir = a.vir - b.vir;
return c;
}
COMPLEX multiple(COMPLEX a,COMPLEX b)
{
COMPLEX c;
c.real = a.real * b.real - a.vir * b.vir;
c.vir = a.vir * b.real + a.real * b.vir;
return c;
}
COMPLEX divide(COMPLEX a,COMPLEX b)
{
COMPLEX c;
double den = b.real * b.real + b.vir * b.vir;
c.real = (a.real * b.real + a.vir * b.vir) / den;
c.vir = (a.vir * b.real - a.real * b.vir) / den;
return c;
}
Ⅱ 关于C语言的divide error
被零除了。相等判断运算符搞错 将 if(n=0)printf("ERROR"); 改一下。
if(n==0)printf("ERROR");
Ⅲ 用C语言函数知识函数1.2个数加法2.2个数减法 3.2个数乘法4。2个数除法 5一个main函数。别用太高级的。谢谢
#include <float.h>
#include <stdio.h>
double fadd(double a, double b)
{
return a+b;
}
double fsub(double a, double b)
{
return a-b;
}
double fmul(double a, double b)
{
reuturn a*b;
}
double fdiv(double a, double b)
{
if(fabs(b) < DBL_MIN_EXP)
return DBL_MAX;
return a/b;
}
int main(int argc, char *argv[])
{
double a=5.0;
double b=6.0;
printf("%f + %f = %f.\n", a, b, fadd(a, b));
printf("%f + %f = %f.\n", a, b, fsub(a, b));
printf("%f + %f = %f.\n", a, b, fmul(a, b));
printf("%f + %f = %f.\n", a, b, fdiv(a, b));
return 0;
}
Ⅳ 在C语言中Divide error是什么意思
在C语言中的除法运算中,如果除数为0,就会出现Divide error。取模(%)运算中的除数和被除数不全为整型时也会出现错误。
你可以仔细检查一下源程序,看是否是以上的问题。
Ⅳ c语言编程不用+、-、*、/编写四个函数,分别求和,差,积,商
#include<iostream>
#include<math.h>
using namespace std;
int add(int object1,int object2)
{
if(object2>0)
for(int i=0;i<object2;i++) object1++;
else
for(int i=0;i<abs(object2);i++) object1--;
return object1;
}
int del(int object1,int object2)
{
if(object2>0)
for(int i=0;i<object2;i++) object1--;
else
for(int i=0;i<abs(object2);i++) object1++;
return object1;
}
int multiply(int object1,int object2)
{
int temp=abs(object1);
int flag=0;
if(object1<0&&object2>0 ||object1>0&&object2<0) flag=1;
for(int i=0;i<abs(object2)-1;i++)
object1=add(abs(object1),temp);
if(flag==1) return del(object1,multiply(object1,2));
return object1;
}
int divide(int object1,int object2)
{
int temp=abs(object2);
int count=0;
int flag=0;
if(abs(object1)<abs(object2)) return 0;
if(object1<0&&object2>0 ||object1>0&&object2<0) flag=1;
do{
count++;
object2=add(abs(object2),temp);
}while(abs(object2)<=abs(object1));
if(flag==1) return del(count,multiply(count,2));
return count;
}
int main()
{
int object1,object2;
cout<<"请输入操作数一:";
cin>>object1;
cout<<"请输入操作数二:";
cin>>object2;
cout<<"("<<object1<<")+("<<object2<<")="<<add(object1,object2)<<endl;
cout<<"("<<object1<<")-("<<object2<<")="<<del(object1,object2)<<endl;
cout<<"("<<object1<<")*("<<object2<<")="<<multiply(object1,object2)<<endl;
cout<<"("<<object1<<")/("<<object2<<")="<<divide(object1,object2)<<endl;
}
觉得C++这样写很复杂呀,你自己看着再改改吧`
Ⅵ C语言 编写函数int divide(char *ss,int a[])从左到右依次扫描字符串ss,将串中出现的数字串转换为整数
#include<stdio.h>
#include<string.h>
int divide(char *ss,int *a)
{
int i,k=0,sum;
for(i=0;i<strlen(ss);i++)
{
sum=0;
for(;ss[i]<'0'||ss[i]>'9';i++);
for(;ss[i]>='0'&&ss[i]<='9';i++)
sum=10*sum+ss[i]-'0';
a[k++]=sum;
}
return k;
}
int main()
{char ss[200];
int a[50],n,i;
gets(ss);
n=divide(ss,a);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
Ⅶ 大学C语言函数的问题
首先说语法错误:
int isprime(a)改为int isprime(int a)
n=sqrt(a);改为 n=(int)sqrt(a);
sqrt函数的参数和返回值都是double类型,从double到int的转化需要强制转化
这样改后编译能通过,但是判断素数的逻辑有问题
if(j==i-2),这不是素数的条件啊。
给你个判断素数的参考函数吧,简单明了
int isprime(int n)
{
int i;
for(i=2;i<=sqrt((double)n);i++)
if(n%i==0)
return 0;
return 1;
}
Ⅷ c语言实现MPI并行计算程序。要求使用partitioning and divide and conquer思想
http://wenku..com/link?url=gAn5gITm-_haS-Hx4kMJ16TidLl8cr2GXxMvKJ_xMSQ7d2dUhI9Lp39ha
Ⅸ c语言divide error的意思。
头文件包含写漏了,w请定义为float或者使用强制类型转换。按你的思路s应该初始话为0.
Ⅹ C语言——高手帮我。程序的目的是为了输入一个txt格式的二维数组(矩阵),但是结果显示divide by 0
#include<stdio.h>
main()
{int i,j,num;
float NUM;
float m,n,p,q; /*m=a,n=c,p=g,q=t*/
float b,e; /*b=g-c,e=a-t*/
float aa,ag,ac,at;
float ga,gg,gc,gt;
float ca,cg,cc,ct;
float ta,tg,tc,tt;
float A,C,G,T;
float AA,AG,AC,AT; /*AA=aa%*/
float GA,GG,GC,GT;
float CA,CG,CC,CT;
float TA,TG,TC,TT;
char string1[80]="tcttcactc";
/*一些序列*/
char string6[80]="attgtacgtcgatcg";
char string9[80]="attgtacgtcgatcg";
char string[9][80]={"string1","string2","string","string4","string5","string6","string7","string8","string9"};
FILE*fp;
fp=fopen("69.txt","w");/*这个不是很熟练不知用错了没有*/
for (j=1;j<9;j++)
{
while(string[j][i]!='\0') /*to count the total*/
{ num++;
i++;
}
for(i=0;i<num;i++)
{
switch(string[j][i])
{
case 'a':m++;break;
case 'g':n++;break;
case 'c':p++;break;
case 't':q++;break;
default:break;
}
}
A=m/num;G=n/num;C=p/num;T=q/num;
b=100*(G-C)/(G+C);e=100*(A-T)/(A+T);
printf("A=%f,G=%f,C=%f,b=%f,\n,e=%f,T=%f",A,G,C,T,b,e);
for(i=0;i<num-1;i++)
{ /*to count aa ag ac at*/
switch(string[j][i])
{
case 'a':switch(string[j][i+1])
{
case 'a':aa++; break;
case 'g':ag++; break;
case 'c':ac++; break;
case 't':at++; break;
}
case 'g':switch(string[j][i+1])
{
case 'a':ga++; break;
case 'g':gg++; break;
case 'c':gc++; break;
case 't':gt++; break;
}
case 'c': switch(string[j][i+1])
{
case 'a':ca++; break;
case 'g':cg++; break;
case 'c':cc++; break;
case 't':ct++; break;
}
case 't': switch(string[j][i+1])
{
case 'a':ta++; break;
case 'g':tg++; break;
case 'c':tc++; break;
case 't':tt++; break;
}
}
}
NUM=aa+ag+ac+at+ga+gg+gc+gt+ca+cg+cc+ct+ta+tg+tc+tt;
AA=aa/NUM;AG=ag/NUM;AC=ac/NUM;AT=at/NUM;
GA=ga/NUM;GG=gg/NUM;GC=gc/NUM;GT=gt/NUM;
CA=ca/NUM;CG=cg/NUM;CC=cc/NUM;CT=ct/NUM;
TA=ta/NUM;TG=tg/NUM;TC=tc/NUM;TT=tt/NUM;
printf("AA=%f,AG=%f,AC=%f,AT=%f\n",AA,AG,AC,AT);
printf("GA=%f,GG=%f,GC=%f,GT=%f\n",GA,GG,GC,GT);
printf("CA=%f,CG=%f,CC=%f,CT=%f\n",CA,CG,CC,CT);
printf("TA=%f,TG=%f,TC=%f,TT=%f\n",TA,TG,TC,TT);
}
}