⑴ c語言程序設計——計算數值較大的a+b
給你中心演算法
輸入ab
char a[2000]={0},b[2000]={0},c[2000]={0};
這里ab需要先全部賦值為零,要不然長度不一樣的話,會有隨機數干擾計算
gets(a);
gets(b);
球長度
la=strlen(a);
lb=strlen(b);
lc=la>lb?la:lb;
反序,這樣個位才能對應上,個位對個位,百位對百位
strrev(a);
strrev(b);
先計算個位 需要變成int型
c[0]=a[0]+b[0]-96;
再計算中間個位
for(i=1;i<lc;i++)
{
c[i]=a[i]+b[i]-96+c[i-1]/10; 需要加上上一位的進位
c[i-1]%=10; 取出每位的個位
c[i-1]+=48; //變成char型
}
最後處理最高位
while(c[lc-1]>9)
{
c[lc-1]+=38;
c[lc]=49; 變成char的1 兩個數相加最大為9+9+1,1是進位
lc++;
}
最後反序回來,也可以從後面列印
strrev(c);
puts(c)
⑵ 用c語言編寫程序 ,用函數實現輸出a, b兩個數的最大值,整數a,b的值從鍵盤輸入、咋做
#include
<stdio.h>
#include
<stdlib.h>
int
main()
{
int
a,b,max;
printf("請輸入兩個整數:");
scanf("%d%d",&a,&b);
//方法一:三目運演算法
max
=
a>b?a:b;
printf("兩個數中的最大值是:%d",max);
/*方式二條件判斷法(if)
假定:a就是最大值,那麼就有以下邏輯過程
max
=
a;
if(max<b){
max=b;
}
printf("兩個數中的最大值是:%d",max);
*/
return
0;
}
⑶ c語言 將變數A和B的值進行互換 的程序
代碼如下:#include<stdio.h>
#include <stdlib.h>
void swap1(int& a,int& b)//使用中間變數交換兩個值
{
int temp = a;
a = b;
b = temp;
}
void swap2(int& a, int& b) //只用加法、減法、乘法也可以交換兩個值
{
a = a + b;
b = a - b;
a = a - b;
}
void swap3(int& a, int& b) //使用位運算也可以交換兩個值
{
a = a^b;
b = a^b;
a = a^b;
}
void main1mianshiti7()
{
int a1 = 1, b1 = 2;
int a2 = 10, b2 = 15;
int a3 = 78, b3 = 90;
int a = 2147483647, b = 1;
printf("a1=%p,b1=%p", &a1, &b1);
swap1(a1, b1);
swap2(a2, b2);
swap3(a3, b3);
printf("swap after~~~~~~~~~~~~~
");
printf("a1=%d,b1=%d
", a1, b1);
printf("a2=%d,b2=%d
", a2, b2);
printf("a3=%d,b3=%d
", a3, b3);
swap2(a, b);
printf("a=%d,b=%d
", a, b);
system("pause");
}
源代碼截圖:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1]目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
⑷ c語言,有兩個整數a,b,由用戶輸入1,2或3.如輸入1,程序就給出ab中大者,輸入2就給出ab中
用指沖圓蘆向函數的指針作函數參數,書上例題腔迅
#include<stdio.h>
main()
{
int max(int,int);
int min(int,int);
int add(int,int);
void fun(int x,int y,int (*p)(int,int));
int a=34,b=21,n;
printf("輸入1or2or3\n");
scanf("%d",&n);
if(n==1) fun(a,b,max);
else if(n==2) fun(a,b,min);
else if(n==3) fun(a,b,add);
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
printf("散帶max=");
return z;
}
int min(int x,int y)
{
int z;
z=x<y?x:y;
printf("min=");
return z;
}
int add(int x,int y)
{
int z;
z=x+y;
printf("sum=");
return z;
}
void fun(int x,int y,int (*p)(int,int))
{
int result;
result=(*p)(x,y);
printf("%d\n",result);
}
⑸ 定義兩個變數ab如何用c語言編程使兩個變數的值能相互交換
C語言中交換兩個變數需要用到一個臨時變數temp。
具體按照下面給出步驟操作:
#include
<stdio.h>
void
main
()
{int
a=1,b=2,temp;temp=a;a=b;
b=temp;
printf("a=%d,b=%d\n",a,b);}
(5)c語言ab程序擴展閱讀:
(1)變數名在VB中是不區分大小寫的(如ABC、aBc、abc等都是一樣的)。C語言中區分大小寫。不同的語言有不同的規則。
(2)定義和使用變數時,通常要把變數名定義為容易使用閱讀和能夠描述所含數據用處的名稱,而不要使用一些難懂的縮寫如A或B2等。例如:假定正在為水果鋪編一個銷售蘋果的軟體。我們需要兩個變數來存儲蘋果的價格和銷量。
此時,可以定義兩個名為Apple_Price和Apple_Sold的變數。每次運行程序時,用戶就這兩個變數提供具體值,這樣看起來就非常直觀。具體方法是:通過用一個或多個單片語成有意義的變數名來使變數意義明確。例如,變數名SalesTaxRate就比Tax或Rate的意義明確得多。
(3)根據需要混合使用大小寫字母和數字。一個合理協議是,變數中每個單詞的第一個字母大寫,例如:DateOfBirth。
(4)另一個合理協議是,每個變數名以兩個或三個字元縮寫開始,這些字元縮寫對應於變數要存儲數據的數據類型。例如,使用strName來說明Name變數保存字元串型數據。
參考資料來源:搜狗網路-C語言
⑹ 該c語言程序的輸出結果為Ab,如何理解
我也是初學著,看到指針也是頭疼的很,不過我每次看到指針都問三個問題,指針指向的什麼類型,指針指向的是什麼,指針本身是什麼類型,搞明白這三個問題,我發現很多問題我能解決啦。
char c1='A',c2='a',*p1,*p2;//定義了字元型的指針,指向字元類型
p1=&c1;p2=&c2;//p1指向了c1='A',p2指向了c2='a'
之後調用fun函數傳入實參p1,p2
a=b//也就是p1=p2,p1不在等於&c1了,p1=p2=&c2了,沒c1什麼事了
(*a)++;//這句動的是c2,a=p1=&c2,*a=*p1=c2='a'又加了個括弧後自加一,字元自加一應該按ascii碼計算97+1=98,b的ascii碼為98,
讓列印的是c1,c2,顯然c1沒變為A,c2變了為b,所以結果為列印Ab
⑺ C語言程序(輸入兩個數 a b 求ab之間的質數並且輸出所有質數之和)
#include <stdio.h> //包含輸入輸出頭文件
int main() //主函數
{
int flag, a,b; //flag標志是否為質數 這里設定b>a
printf("請依次輸入a,b兩個整數,注意a<b,a和b用空格分開\n");
scanf("%d %d",&a,&b);
for (int i=a;i<=b;i++) //從a開始到b之間的所有數
{
flag=0; //初始化,為質數
for (int j=2;j<=i/2;j++) //從除以2開始,一直除以到i/2,(例如9/7定不能整除)
{
if (!(i %j) ) //如果整除(%為取余數)
{
flag=1; //制標志為1(不為質數)
break; //跳到a-b的下一個數
}
}
if (flag==0) printf("%d\n",i); //如果從除以2開始,一直除以到i/2都不能整除,則為質數,列印出來。
}
}
⑻ 怎樣用C語言設計一個程序,輸入A、B的值,將兩個值交換後輸出。
#include<stdio.h>
void main()
{
int a,b,t;
scanf("d%,d%",&a,&b);
if(a<b)
printf("比較後:a,b的值分別為:a=d%,b=d%\n",a,b);
解析:
if(a<b)
{ t=a;
a=b;
b=t;
}//這個是關鍵代碼,首先是判斷a是否小於b,如果
小於的話,就執行,里邊的t就像是你說的一樣,是個中轉
工具,就像你要將兩個杯子中的水交換一樣,你要有另外一個容器做中轉。
其實整個過程就是,如果a<b的話,交換他們的值,列印出來。如果是a>b的話,直接列印出來。其實最後的結果就是先輸出大的,然後再輸出較小值!
能看懂嗎?