重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
#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。