輸入整數(shù)n,再輸入n個整數(shù),計算其中偶數(shù)(奇數(shù))之和。(參考程序見(8)題)
//變量定義:累加器sum,整數(shù)n,循環(huán)變量i,數(shù)x
//累加器清零
//輸入n
for(....) //循環(huán)n次
{??//輸入數(shù)x
//如果為偶數(shù)(奇數(shù))
sum += x;
}
使用循環(huán)計算s=1+12+123+1234之和。
核心代碼:
int item = 0, sum = 0;
for (int i = 1; i <= 4; i++)?{
item = item * 10 + i;
sum = sum + item;
}
使用循環(huán)計算s=a+aa+aaa+aaaa+...+a...a之和。其中a為2,a..a表示n個a。n和a從鍵盤輸入。
核心代碼:
int a, n;
scanf("%d %d", &a, &n);??//a=2,n=4
int foo( int a, int n ){
int sum = 0;
for (int i = 1; i <= n; i++){
sum = sum * 10 + a;
}
return sum;
}
使用循環(huán)計算計算s=1+1/2+1/4+...+1/100之和。核心代碼:
double one = 0, sum = 0;
for (int i = 2; i <= 100; i += 2)?{
one = 1.0 / i ;?//計算某一項(xiàng)
sum = sum + one;?//逐項(xiàng)累加
}
分析下面的程序,k的值為多少?
int i, j, k = 0;
for (i = 0; i < 2; i++)??{
k++;
for (j = 0; j <= 3; j++) {
if (j % 2 != 0)?break;
k++;
}
k++;
}
對于上面的程序,如果把break換為continue,則k的值為多少?
計算下面π/2的值。
#include
main()
{
int i,fz,fm;
float sum=0,t=1,a;
for(i=1;i<=1000;i++)??
{
fz=i; fm=2*i+1;??//從規(guī)律可以看出,每項(xiàng)新增的那個乘數(shù),分子是i,分母是2*i+1
a=fz*1.0/fm;???//a是每項(xiàng)新增的乘數(shù),乘以1.0是要保證結(jié)果是小數(shù)
t=t*a;?????//t是第i項(xiàng)的乘積,例如當(dāng)a是時,t是
sum=sum+t;??
}
printf("%f\n",(sum+1)*2);?//上面的sum少加了第一項(xiàng)的1,而且是,所以加1乘2
}
求二維數(shù)組中值最大(最?。┑脑亍⒓捌渌诘男邢聵?biāo)(row)、列下標(biāo)(col)。
核心(偽代碼):
輸入二維數(shù)組;
假定第一個元素為最大值(最小值):
row=0, col=0;
for(i...)遍歷行
?for(j...)遍歷列
???//比較遍歷到的元素arr[i][j]與arr[row][col]的大小關(guān)系,并使用row記錄i,col記錄j
???row=i, col=j;
打印最大值(最小值)及其所在的行下標(biāo)、列下標(biāo)
參考例題??有一個3×4的矩陣,要求編程序求出其中值最大的那個元素的值,以及其所在的行號和列號。
#include
main()
{int i,j,row=0,colum=0,max;
?int a[3][4]={{1,2,3,4},{9,8,7,6}, {-10,10,-5,2}};?// 注釋見下方:注
?max=a[0][0];?????//數(shù)組第一個數(shù)上擂臺???????
?for (i=0;i<=2;i++)
??for (j=0;j<=3;j++)
????if (a[i][j]>max)??//打擂臺法,數(shù)組里的每個數(shù)依次打擂
????{?max=a[i][j];?row=i;?colum=j; }??//上擂臺的同時,記錄該數(shù)的行號和列號
?printf("max=%d\nrow=%d\n
???????colum=%d\n",max,row,colum);
}
注://上面為初始化列表法,如果題上要求使用鍵盤輸入法,那么該行代碼將被如下替代
for(i=0;i<=2;i++)??//3行,行下標(biāo)到2
?for(j=0;j<=3;j++)?//4列,列下標(biāo)到3
??scanf(“%d”,&a[i][j]);??
輸入n個數(shù),求出其中的奇數(shù)、偶數(shù)的個數(shù)。
參考程序如下:
#include
main()
{
int i,n,a[1000],js=0,os=0;
scanf("%d",&n);??//先輸入n
for(i=0;i<=n-1;i++)??//再輸入n個整數(shù)
scanf("%d",&a[i]);
for(i=0;i<=n-1;i++)??//把數(shù)組全部遍歷一遍,計算奇數(shù)和偶數(shù)的個數(shù)
if(a[i]%2==0) os++;
else js++;
printf("%d,%d",js,os);??
}
輸入n個數(shù),使用選擇排序?qū)?shù)據(jù)進(jìn)行排序(從大到小、或者從小到大)。核心代碼如下:
可以使用冒泡法排序,書上抄了程序的
打印由*組成的金字塔圖形。
???*
???***
??*****
就地逆置數(shù)組:(12345,變54321,下面代碼分別是整型和字符型數(shù)組)
int a[5] = {1, 2, 3, 4, 5};
char b[5] = {'1', '2', '3', '4', '5'};
int n = 5;
for(int i = 0; i < 5; i++){
int t = a[i];
a[i] = a[n - i - 1];
a[n - i -1] = t;
}
for(int i = 0; i < 5; i++){
char t = b[i];
b[i] = b[n - i - 1];
b[n - i -1] = t;
}
計算sum=x1 +x2 +x3 +?+xn。輸入x和n,使用pow計算sum。
參考程序如下:
#include
#include?????//下面用到數(shù)學(xué)的pow()函數(shù),要將此頭文件包含
main()
{
int i,x,n,sum=0;
scanf("%d,%d",&x,&n);??//題上要求輸入x和n
for(i=1;i<=n;i++)
sum=sum+pow(x,i);??//pow(x,i)等價于x的i次方
printf("sum=%d\n",sum);
}
輸入一行字符串,將該字符串中的數(shù)字提取出來,組成一個整數(shù)。例如:如果輸入的字符串為“hello123abc456xy7”,則結(jié)果為1234567。
參考程序如下:
#include
main()
{
char a[1000];??//數(shù)組適當(dāng)定義長一點(diǎn),以保證能夠裝得下我們輸入的字符
int i;
scanf("%s",a);??//輸入數(shù)組(字符串法),a前面可以不加&(因?yàn)閿?shù)組名就是首地址)
for(i=0;a[i]!='\0';i++)??//從左往右掃描數(shù)組每個字符,直到’\0’即數(shù)組結(jié)束。
if(a[i]>='0'&&a[i]<='9')?//如果判斷該字符為數(shù)字,就輸出此字符
printf("%c",a[i]);
}
標(biāo)簽: