C語言 字符型數(shù)據(jù)可以進(jìn)行加減運(yùn)算的。
成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站制作與策劃設(shè)計(jì),定西網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:定西等地區(qū)。定西做網(wǎng)站價(jià)格咨詢:028-86922220
例如:
char c='A';
c+=2;
c='E'+'6'-'0';
#include stdio.h
#include stdlib.h//注意包含這個(gè)頭文件
void main()
{
char *a = "123456";
char *b = "123451";
int c;
c=atoi(a)-atoi(b);//將字符串轉(zhuǎn)成整數(shù)
printf("%d\n",c);
}
實(shí)現(xiàn)方法如下:
讀入的時(shí)候用%x讀入,然后在程序里面直接用+,-,*,/運(yùn)算就行了,輸出的時(shí)候再用%x。
示例一:
int a,b;
scanf("%x%x",a,b);
printf("%x\n%x\n",a+b,a-b);
輸入:9 7
輸出:
10
2
示例二:
int a = 0, b = 0;
char char1 = 0;
int val = 0;
printf("輸入:");
scanf("%d%c%d", a, char1, b);
switch (char1) {
case '+': val = a + b;
break;
case '-': val = a - b;
break;
case '*': val = a * b;
break;
case '/': val = a / b;
break;
}
printf("%d", val);
按照你的程序運(yùn)行后。。。在輸入c值的時(shí)候
程序直接結(jié)束了。。。還有就是每個(gè)case語句后記著加上break跳出不過也有不過根據(jù)具體需要也可以不加break;但是你的這個(gè)程序需要加上break;
原因是:回車符也是字符,所以你按回后,程序以為是輸入了c的值了,而在輸入b值成功是因?yàn)?/p>
回車符不是數(shù)字形式的。
以下是我改過的程序,編譯運(yùn)行都很好的
#include
#include
void main()
{
float a,b;
char c;
printf("\n input a:");
scanf("%f",a);
printf("\n input b:");
scanf("%f",b);
//這種情況經(jīng)常遇到。。。。輸入完后回車被下一個(gè)scanf("%c",c)捕獲了。
//因?yàn)榛剀嚪彩亲址?,所以你按回車后,程序以為是輸入了c的值了
//所以加上下面一行,把回車符取走就可以了。。。。
getchar();
printf("\n input c:");
scanf("%c",c);
//printf("\n%c",c);
switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
}
//為了好看
printf("\n");
}
# includestdio.h
double jia(double x, double d)
{
double s;
s = x+d;
return s;
}
double jian(double x, double d)
{
double s;
s = x-d;
return s;
}
double cheng(double x, double d)
{
double s;
s = x*d;
return s;
}
double chu(double x, double d)
{
double s;
s = x/d;
return s;
}
int main(void)
{
double i, j, k;
char t;
k = 0;
printf("請輸入要計(jì)算什么運(yùn)算“+”“-”“*”“/”\n");
scanf("%c", t);
if(t == '+')
{
printf("請輸入要相加的兩個(gè)數(shù)\n");
scanf("%lf %lf", i, j);
k = jia(i, j);
printf("這兩個(gè)數(shù)相加為%6.2lf\n", k);
}
else if(t == '-')
{
printf("請輸入要相減的兩個(gè)數(shù)\n");
scanf("%lf %lf", i, j);
k = jian(i, j);
printf("這兩個(gè)數(shù)相減為%6.2lf\n", k);
}
else if(t == '*')
{
printf("請輸入要相*的兩個(gè)數(shù)\n");
scanf("%lf %lf", i, j);
k = cheng(i, j);
printf("這兩個(gè)數(shù)相*為%6.2lf\n", k);
}
else if(t == '/')
{
printf("請輸入要相/的兩個(gè)數(shù)\n");
scanf("%lf %lf", i, j);
k = chu(i, j);
printf("這兩個(gè)數(shù)相/為%6.2lf\n", k);
}
else
{
printf("對不起目前只支持“+”“-”“*”“/”\n");
}
return 0;
}
1、打開C-Free5.0新建一個(gè)空白頁面,然后將C語言的基礎(chǔ)格式寫完,注意格式縮進(jìn)。如下圖所示。
2、然后輸入“?? int a=10; float b=5,c; ”注意: float 是浮點(diǎn)型,int 是整型。這個(gè)是用來定義C語言中的數(shù)值的類型,還有如果一個(gè)語句結(jié)束那就要打上“;”,這個(gè)很重要,不要忘記了。上面的語句是定義了一個(gè)a 的整型數(shù),值為10。
3、c定義的一個(gè)空白的浮點(diǎn)數(shù),用來當(dāng)作后面的加減后取得值。注意這里有幾個(gè)注意點(diǎn),可以看到一個(gè)整型的數(shù)和一個(gè)浮點(diǎn)數(shù)的加減乘除得到的數(shù)值都是浮點(diǎn)數(shù),所以這里用%f輸出c的值。
4、繼續(xù)將剩下的語言補(bǔ)充完整如下:#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、這樣一個(gè)簡單的C語言的加減乘除算是寫好了,運(yùn)行看看。