重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
创新互联主营西陵网站建设的网络公司,主营网站建设方案,成都APP应用开发,西陵h5重庆小程序开发公司搭建,西陵网站营销推广欢迎西陵等地区企业咨询
main (void)
{
int a,b,c;
char op;
scanf ("%d%c%d",a,op,b);//最好空格去掉,这样就可以直接写成a+b或者a-b。如果有空格的话要记得空格也要打a + b。要不会出现错误 ,而且输入的时候需要用地址符····
if(op=='+')
{c=a+b;}
if(op=='-')
{c=a-b;}
printf("%d%c%d=%d\n",a,op,b,c);//楼主这句应该放在数据处理完后。。要不你输出的a,op,b都是在没处理过的数,也就是原来的值,而且最好是把,去掉,这样更美观 ,而且printf后面不需要。。。切记。而且没必要那样输出。请楼主看我的printf```
}
还不清楚 来hi我
不知道输入a乘b是什么意思,某种格式么?
#includestdio.h
void main()
{
float a,b;
scanf("%f %f", a,b);
printf("盒=%f 轴=%f 手=%f 底=%f 滑=%f",a-1.3,a-5,a-7,a-6.5,b-5.5);
}
#include stdio.h
#include stdlib.h
#include string.h
char a[1000],b[1000];
int c[1001];
int x,y,i,j,k;
int blen=0;
int alen=0;
char flag = '+';//用于减法标记负数
int Subtract(char *a, char *b, int len) { //为了避免代码重复,将共同的计算抽出写成函数
int i;
for (i=len-1; i=0; i--) {
if (a[i] b[i]) {
c[i] = a[i] + 10 - b[i];
b[i-1]++;
} else {
c[i] = a[i] - b[i];
}
}
return 0;
}
int Subtraction(){
for (i=0;i100;i++)
{
scanf("%c",b[i]);
if(b[i]=='\n')
break;
blen++;
}
printf("=");
if(alenblen)
{
x=(alen-blen);
for(i=blen-1;i=0;i--)
{
alen--;
b[alen]=b[i];
}
for (i=0;ix;i++)
b[i]='0';
alen=blen+x;
blen=alen;
} else if (blen alen) {
x=(blen-alen);
for(i=alen-1;i=0;i--)
{
blen--;
a[blen]=a[i];
}
for (i=0;ix;i++)
a[i]='0';
blen=alen+x;
alen=blen;
}
for (i=alen-1;i=0;i--) {
a[i]=a[i]-'0';
b[i]=b[i]-'0';
}
if (strcmp(a, b) 0) {
Subtract(a, b, alen);
}else {
flag = '-';
Subtract(b, a, alen);
}
return 0;
}
int Addition(){
for (i=0;i100;i++)
{ scanf("%c",b[i]);
if(b[i]=='\n')
break;
blen++;
}
printf("=");
if(alenblen)
{
x=(alen-blen);
for(i=blen-1;i=0;i--)
{
alen--;
b[alen]=b[i];
}
for (i=0;ix;i++)
b[i]='0';
alen=blen+x;
} else if (blen alen) {
x=(blen-alen);
for(i=alen-1;i=0;i--)
{
blen--;
a[blen]=a[i];
}
for (i=0;ix;i++)
a[i]='0';
blen=alen+x;
alen=blen;
}
for (i=alen-1;i=0;i--) {
a[i]=a[i]-'0';
b[i]=b[i]-'0';
if(c[i+1]+a[i]+b[i]=10)
{
c[i]=(c[i+1]+a[i]+b[i])/10;
c[i+1] = (c[i+1]+a[i]+b[i])%10;
}
else
{
c[i+1]+=(a[i]+b[i]);
}
}
return 0;
}
int main()
{
for (i=0;i100;i++)
a[i]=0;
for (i=0;i100;i++)
b[i]=0;
for (i=0;i101;i++)
c[i]=0;
for (i=0;i100;i++)
{
scanf("%c",a[i]);
if(a[i]=='+')
{
Addition();
goto output1;
}
if(a[i]=='-')
{
Subtraction();
goto output2;
}
alen++;
}
output1:
{
for (i=0;i=alen;i++)
printf("%d",c[i]);
return 0;
}
output2:
{
printf("%c", flag);
for (i=0;ialen;i++)
printf("%d",c[i]);
return 0;
}
}
代码运行结果:
123456789-12345
=+123444444
Terminated with return code 0
Press any key to continue ...
123456+111111
=0234567
Terminated with return code 0
Press any key to continue ...
1000000-1
=+0999999
Terminated with return code 0
Press any key to continue ...
1-1000000
=-0999999
Terminated with return code 0
Press any key to continue ...
//对你的代码作了! 希望有助于你的学习。
1、打开C-Free5.0新建一个空白页面,然后将C语言的基础格式写完,注意格式缩进。如下图所示。
2、然后输入“ int a=10; float b=5,c; ”注意: float 是浮点型,int 是整型。这个是用来定义C语言中的数值的类型,还有如果一个语句结束那就要打上“;”,这个很重要,不要忘记了。上面的语句是定义了一个a 的整型数,值为10。
3、c定义的一个空白的浮点数,用来当作后面的加减后取得值。注意这里有几个注意点,可以看到一个整型的数和一个浮点数的加减乘除得到的数值都是浮点数,所以这里用%f输出c的值。
4、继续将剩下的语言补充完整如下:#include stdio.hmain(){ int a=10; float b=5,c,d,e,f; c=a-b; d=a+b; e=a*b; f=a/b; printf("a-b=%f\n",c); printf("a+b=%f\n",d); printf("a*b=%f\n",e); printf("a/b=%f\n",f);}。
5、这样一个简单的C语言的加减乘除算是写好了,运行看看。
sprintf(result,"%d",c);
是把c这个整形数以字符串的形式写到result字符串中,如果c=1000,则result的前四个字符分别是1000,即把整形变成字符串。
#include
stdio.h
#include
string.h
int
main()
{
char
result[35]={0};
int
a,b,c,clen;
int
i;
scanf("%d
%d",a,b);
c=a-b;
sprintf(result,"%d",c);
clen=strlen(result);
for(i=0;iclen;i++)
{
if((clen-i)%3==0i!=0)
printf(",");
printf("%c",result[i]);
}
printf("\n");
return
0;
}
#include string.h
#include stdio.h
#include stdlib.h
#define N 100
int main(int argc, char const *argv[])
{
char arr[N] = {};
gets(arr);
char brr[N] = {};
gets(brr);
int len1,len2,i = 0,j = 0;
len1 = strlen(arr);
len2 = strlen(brr);
int len = len1len2?len1:len2;
/* c99之后数组初始化支持整型表达式,称为可变长数组,但按照c89的标准是不对的
int num1[len]; //将字符串转换成翻转的整型数组
int num2[len];
*/
int* num1 = (int*)malloc(len*sizeof(int));
int* num2 = (int*)malloc(len*sizeof(int));
for (i = 0; i len; i++)
{
num1[i] = ilen1 ? arr[len1-i-1]-'0':0;
}
for (j = 0; j len; j++)
{
num2[j] = jlen2 ? brr[len2-j-1]-'0':0;
}
//int sum[len]; //定义和数组
int* sum = (int*)malloc(len*sizeof(int));
int flag=0; //设进位符
for (i = 0; i len; i++)
{
sum[len-1-i] = (num1[i]+num2[i]+flag)%10;
flag = (num1[i]+num2[i]+flag)/10;
}
if (flag == 1) printf("1"); //如果最高位有进位 则输出一个1
for (i = 0; i len; i++)
{
printf("%d",sum[i]);
}
printf("\n");
free(num1);
free(num2);
free(sum);
num1 = NULL;
num2 = NULL;
sum = NULL;
return 0;
}
扩展资料:
gets()函数用法
gets是从标准输入设备读字符串函数。
函数原型:char*gets(char*str);
功能为:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
注意:不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。使用时需要包含stdio.h头文件
参数
str为字符串指针,用来存放读取到的数据。
返回值
读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。