1. 程式人生 > 其它 >JSON六:Java:物件集合序列化成JSON(陣列);JSON(陣列)反序列化為物件集合;

JSON六:Java:物件集合序列化成JSON(陣列);JSON(陣列)反序列化為物件集合;

技術標籤:XD# C語言學習作業c語言

C語言練習題

目錄

整數簡單運算

題目11:整數簡單運算
問題描述:編寫程式,計算使用者輸入的兩個整數的和、差、乘積(*)和商(/)。
輸入格式:輸入兩個整數,整數之間用空格分隔。
輸出格式:輸出四個整數結果,分別表示和、差、積和商,每輸出一個結果換行。

輸入樣例:
3 4
輸出樣例:
7
-1
12
0

#include<stdio.h>
int main(){
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d\n%d\n%d\n%d\n",a+b,a-b,a*b,a/b);
	return 0;
}

四則運算

四則運算
問題描述:
輸入兩個整數和一個四則運算子,根據運算子計算並輸出其運算結果(和、差、積、商、餘之一)。注意做整除及求餘運算時,除數不能為零。

輸入說明:
使用scanf()函式輸入兩個整數和一個運算子,格式見輸入樣例。

輸出說明:

輸出使用printf()函式,格式見輸出樣例。

輸入樣例:
5%2

輸出樣例:
5%2=1

#include<stdio.h>
int main(){
	int a,b;
	char c;
	scanf("%d%c%d",&a,&c,&b);
	if(c=='+')
	printf("%d%c%d=%d\n",a,c,b,a+b);
	else if(c=='-')
	printf("%d%c%d=%d\n",a,c,b,a-b);
	else if(c=='*')
	printf("%d%c%d=%d\n"
,a,c,b,a*b); else if(c=='/') printf("%d%c%d=%d\n",a,c,b,a/b); else if(c=='%') printf("%d%c%d=%d\n",a,c,b,a%b); return 0; } //switch語句同理

數位輸出

數位輸出
問題描述:
輸入一個5位整數,求出其各數位數值,並按照從高位到低位的順序輸出,如:輸入12345,輸出為1 2 3 4 5。

輸入說明:
輸入一個五位正整數。

輸出說明:
按數位從高到低依次輸出,各數位之間以一個空格相分隔。

輸入樣例:
96237

輸出樣例:
9 6 2 3 7

#include<stdio.h>
int main(){
	int a;
	int num[20];
	int i,j,k;
	scanf("%d",&a);
	
	i=0;
	j=0;
	while(a>0){
		num[i]=a%10;
		a=a/10;
		i++;
		j++;
	}
	
	for(k=i-1;k>=0;k--)
	printf("%d ",num[k]);
	
	return 0;
}

計算球體重量_%f的使用

標題
計算球體重量

描述
已知鐵的比重是7.86(克/立方厘米),金的比重是19.3(克/立方厘米)。寫一個程式,分別計算出給定直徑的鐵球與金球的質量,假定PI=3.1415926

時間限制
1

記憶體限制
10000

類別
1

輸入說明
輸入兩個整數,分別表示鐵球與金球的直徑(單位為毫米)

輸出說明
輸出兩個浮點數,分別表示鐵球與金球的質量(單位為克),小數點後保留3位小數,兩個浮點數之間用空格分隔

輸入樣例
100 100

輸出樣例
4115.486 10105.456

提示
用scanf輸入,用printf輸出,保留3位小數的格式控制字元為%.3f

#include<stdio.h>
#include<math.h>
#define pi 3.1415926
int main(){
	int a,b;
	double xa,xb;
	scanf("%d%d",&a,&b);
	
	xa=7.86*4/3*pi*pow(a/20.0,3);
	xb=19.3*4/3*pi*pow(b/20.0,3);
	printf("%.3f %.3f",xa,xb);

	return 0;
}

數位輸出_三位數數位拆分

標題
數位輸出

描述
輸入一個3位整數,求出其各數位數值,並按照從高到低的順序輸出,如:輸入123,輸出1 2 3

時間限制
1

記憶體限制
10000

類別
1

輸入說明
輸入一個三位正整數

輸出說明
按數位從高到低依次輸出,各數位之間以一個空格相分離。

輸入樣例
985

輸出樣例
9 8 5

提示
輸入三位數,各數位格式輸出,從高到低,一個空格分隔,如9 8 5

#include<stdio.h>
int main(){
	int a;
	int num[20];
	int i,j,k;
	scanf("%d",&a);
	
	i=0;
	j=0;
	while(a>0){
		num[i]=a%10;
		a=a/10;
		i++;
		j++;
	}
	
	for(k=i-1;k>=0;k--)
	printf("%d ",num[k]);
	
	
	return 0;
}

求整數各位之和

題目描述:輸入一個三位數整數,求其百位、十位和個位數字之和。

輸入格式:共一行,輸入一個三位整數。

輸出格式:共一行,輸出一個整數。

示例:
輸入:128
輸出:11

#include<stdio.h>
int main(){
	int a;
	int num[20],sum;
	int i,j,k;
	scanf("%d",&a);
	
	i=0;
	j=0;
	while(a>0){
		num[i]=a%10;
		a=a/10;
		i++;
		j++;
	}
	
	sum=0;
	for(k=i-1;k>=0;k--)
	sum=sum+num[k];
	
	
	printf("%d",sum);
	
	
	return 0;
}

求三角形面積

題目描述:輸入三角形的三邊長,計算三角形的面積,結果保留兩位小數。
邊長分別為a,b,c,三角形的面積公式為s=sqrt(p(p-a)(p-b)(p-c)),其中p=(a+b+c)/2。

輸入格式:共一行,輸入三個數,保留兩位小數,用空格隔開各個資料。

輸出格式:共一行,輸出面積,結果保留兩位小數。

示例:
輸入:3.00 4.00 5.00
輸出:6.00

#include<stdio.h>
#include<math.h>
int main()
{
	double a,b,c;
	double p,s;
	scanf("%lf%lf%lf",&a,&b,&c);
	
	p=(a+b+c)/2;
	s=sqrt(p*(p-a)*(p-b)*(p-c));
	
	printf("%.2f",s);
	return 0;
}

工資發放

題目描述:公司財務要發工資現金,需要提前換取100元、50元、20元、10元、5元和1元的人民幣,
請輸入工資數,計算張數最少情況下,各自需要多少張。

輸入格式:共一行,輸入一個正整數。

輸出格式:共一行,分別是100、50、20、10、5、1元面額的張數,用空格隔開各個資料。

示例:
輸入:1258
輸出:12 1 0 0 1 3

#include<stdio.h>
int main()
{
	int num;
	scanf("%d",&num);
	
	printf("%d %d %d %d %d %d",num/100,(num%100)/50,((num%100)%50)/20,\
			  (((num%100)%50)%20)/10, ((((num%100)%50)%20)%10)/5,\
			  ((((num%100)%50)%20)%10)%5);
			  
 return 0;
}

字元轉換

題目:字元編碼
時間限制:1S
記憶體限制:10000Kb
問題描述:
請程式設計序將“China”譯成密碼,密碼規律是:用原來字母后面第四個字母代替原來的字母。例如“A”後面的第四個字母是“E”,用“E”代替“A”,因此,“China”應譯為“Glmre”。
輸入說明:
用賦初值的方法使c1,c2,c3,c4,c5這五個變數的值分別為‘C’,‘h’,‘i’‘n’,‘a’,字元之間以空格分隔。
輸出說明:
經過運算,使c1,c2,c3,c4,c5分別變成‘G’,‘l’,‘m’,‘r’,‘e’。用printf函式輸出這五個字元
輸入樣例:
C h I n a
輸出樣例:
Glmre

int main()
{
	char word[5]={'C','h','i','n','a'};
	for(int i=0;i<5;i++)
	word[i]=word[i]+4;
	
	for(int i=0;i<5;i++)
	printf("%c",word[i]);
	
	return 0;
}

成績分級

題目:成績分級
時間限制:1S
記憶體限制:10000Kb
問題描述
給出以百分制成績,要求輸出成績等級為’A’,’B’,’C’,’D’,’E’。90分以上為’A’,80-89分為’B’,70-79分為’C’,60-69分為’D’,60分以下為’E’。
輸入說明:
輸入0-100內的成績
輸出說明:
輸出成績相對應的等級
輸入樣例:
95
輸出樣例:
A

#include<stdio.h>
int main()
{
	int num;
	scanf("%d",&num);
	if(num<60)
	printf("E");
	else if(num>=60&&num<70)
	printf("D");
	else if(num>=70&&num<80)
	printf("C");
	else if(num>=80&&num<90)
	printf("B");
	else if(num>=90)
	printf("A");
	
	
	return 0;
}

分段函式1

題目:分段函式
時間限制:1S
記憶體限制:10000Kb
問題描述:
有一個函式:
在這裡插入圖片描述

程式設計輸出其函式值。
輸入說明:
輸入自變數x(輸入必須為整數)
輸出對應的函式值。
輸入樣例:
3
輸出樣例:
5

#include<stdio.h>
int main()
{
	int x;
	scanf("%d",&x);
	if(x<1)
	printf("%d",x);
	else if(x<10&&x>=1)
	printf("%d",2*x-1);
	else
	printf("%d",3*x-11);
	
	return 0;
	
}

利潤計算

題目:利潤計算
時間限制:1S
記憶體限制:10000Kb
問題描述:
企業發放的獎金根據利潤提成。利潤I低於或者等於100000元的,獎金可提10%潤高於100000元低於200000元 時,低於100000元的部分按照10%提成,高於100000元的部分,可提成7.5%; 時,低於200000元的部分仍按上述辦法提成(下同)。高於200000元的部分按5%提成; 元時,高於400000元的部分按3%提成; 時,高於600000元的部分按照1.5%提成;I>1000000時,超過1000000元的部分按1%提成。從鍵盤輸入當月利潤I,求應發獎金總數。
輸入說明:
從鍵盤輸入當月利潤I。
輸出說明:
輸出當月應發的獎金總數,結果保留兩位小數。
輸入樣例:
150000
輸出樣例:
13750.00

#include<stdio.h>
int main()
{
	int x;
	scanf("%d",&x);
	if(x<=100000)
	printf("%.2f",0.1*x);
	else if(x<200000&&x>=100000)
	printf("%.2f",10000+(x-100000)*0.075);
	else if(x<400000&&x>=200000)
	printf("%.2f",17500+(x-200000)*0.05);
	else if(x<600000&&x>=400000)
	printf("%.2f",27500+(x-400000)*0.03);
	else if(x<1000000&&x>=600000)
	printf("%.2f",33500+(x-600000)*0.015);
	else
	printf("%.2f",39500+(x-1000000)*0.01);
	
	return 0;
	
}

和差平方與平方和差

試題名稱
problem1-6和差平方與平方和差

時間限制:1秒

問題描述

輸入兩個大於4的正整數a和b,分別計算(a+b)2、(a-b)2、a2+b2、a2-b2,並找出其最大值和最小值。

輸入說明
輸入為2個正整數a和b,4<= a, b <1000,整數之間由空格分開

輸出說明

輸出兩個整數,分別表示(a+b)2、(a-b)2、a2+b2、a2-b2中的最大值和最小值,整數之間用空格分隔。

測試樣例:

輸入樣例1

8 10
輸出樣例1

324 -36

輸入樣例2

36 5
輸出樣例2

1681 961

#include<stdio.h>
#include<math.h>
int main()
{
	int a,b;
	int xpow[4];
	scanf("%d%d",&a,&b);
	
	xpow[0]=(int)pow(a+b,2);
	xpow[1]=(int)pow(a-b,2);
	xpow[2]=(int)pow(a,2)+(int)pow(b,2);
	xpow[3]=(int)pow(a,2)-(int)pow(b,2);
	
	for(int i=0;i<3;i++)
	for(int j=i;j<4;j++)
	if(xpow[i]<xpow[j]){
		a=xpow[i];
		xpow[i]=xpow[j];
		xpow[j]=a;
	}
	
	printf("%d %d",xpow[0],xpow[3]);
	
	return 0;
	
}

PM2.5

標題
PM2.5

類別
流程控制

時間限制
1S

記憶體限制
256Kb

問題描述
給出一組PM2.5資料,按以下分級標準統計各級天氣的天數,並計算出PM2.5平均值。
PM2.5分級標準為:
一級優(0<=PM2.5<=50)
二級良(51<=PM2.5<=100為)
三級輕度汙染(101<=PM2.5<=150)
四級中度汙染(151<=PM2.5<=200)
五級重度汙染(201<=PM2.5<=300)
六級嚴重汙染(PM2.5>300)

輸入說明
輸入分為兩行,
第一行是一個整數n表示天數(1<n<=100);
第二行為n個非負整數Pi(0<=Pi<=1000),表示每天的PM2.5值,整數之間用空格分隔。

輸出說明
輸出兩行資料,
第一行為PM2.5平均值,結果保留2位小數;
第二行依次輸出一級優,二級良,三級輕度汙染,四級中度汙染,五級重度汙染,六級嚴重汙染的天數。

輸入樣例
10
50 100 120 80 200 350 400 220 180 165

輸出樣例
186.50
1 2 1 3 1 2

#include<stdio.h>
int main()
{
	int num;
	int count[100],quality[6];
	double ave=0;
	int i,j;
	
	
	scanf("%d",&num);
	for(i=0;i<num;i++){
		scanf("%d",&count[i]);
		ave=ave+count[i]*1.0/num;
	}
	
	for(i=0;i<6;i++)
	quality[i]=0;
	
	for(i=0;i<num;i++){
		if(count[i]<=50)
		quality[0]++;
		else if(count[i]<=100&&count[i]>=51)
		quality[1]++;
		else if(count[i]>=101&&count[i]<=150)
		quality[2]++;
		else if(count[i]>=151&&count[i]<=200)
		quality[3]++;
		else if(count[i]>=201&&count[i]<=300)
		quality[4]++;
		else if(count[i]>300)
		quality[5]++;
	}
	
	printf("%.2f\n",ave);
	for(i=0;i<6;i++)
	printf("%d ",quality[i]);
}

abc組合

標題
abc組合

類別

時間限制
1S

記憶體限制
1000Kb

問題描述
已知abc+cba=n,其中a,b,c均為一位數,1000<n<2000,程式設計求出滿足條件的a,b,c所有組合。

輸入說明
一個整數n

輸出說明
按照整數abc從小到大的順序,輸出a, b, c, 用空格分隔,每輸出一組a,b,c後換行.

輸入樣例
1352

輸出樣例
3 7 9
4 7 8
5 7 7
6 7 6
7 7 5
8 7 4
9 7 3

#include<stdio.h>
int main()
{
	int a,b,c,abc,cba;
	int num;
	
	scanf("%d",&num);
	
	for(a=1;a<10;a++)
	for(b=0;b<10;b++)
	for(c=1;c<10;c++){
		abc=a*100+b*10+c;
		cba=c*100+b*10+a;
		if(num==abc+cba)
		printf("%d %d %d\n",a,b,c);
	}
	
	return 0;
}

直角三角形

標題
直角三角形

類別
流程控制

時間限制
1S

記憶體限制
1000Kb

問題描述
設直角三角形兩條直角邊長度為a和b,斜邊長度為c,則a,b,c滿足a2+b2=c^2,
輸入三個整數a,b,c,判斷對應的三角形是不是直角三角形,不是則輸出“no”,是則輸出其面積的2倍。

輸入說明
資料由同一行的三個整數a,b,c構成,整數之間以空格分隔

輸出說明
如果輸入的三個整數可以構成一個直角三角形,則輸出一個整數表示該三角形面積的2倍;否則輸出“no”

輸入樣例
樣例1輸入
1 1 2
樣例2輸入
3 4 5

輸出樣例
樣例1輸出
no
樣例2輸出
12

#include<stdio.h>
int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if((a*a+b*b)==c*c)
	printf("%d",a*b);
	else
	printf("no");
	
	return 0;
}

工資計算

題目1:工資計算
問題描述
  小明的公司每個月給小明發工資,而小明拿到的工資為交完個人所得稅之後的工資。假設他一個月的稅前工資為S元,則他應交的個人所得稅按如下公式計算:
  1) 個人所得稅起徵點為3500元,若S不超過3500,則不交稅,3500元以上的部分才計算個人所得稅,令A=S-3500元;
  2) A中不超過1500元的部分,稅率3%;
  3) A中超過1500元未超過4500元的部分,稅率10%;
  4) A中超過4500元未超過9000元的部分,稅率20%;
  5) A中超過9000元未超過35000元的部分,稅率25%;
  6) A中超過35000元的部分,稅率30%;
  例如,如果小明的稅前工資為10000元,則A=10000-3500=6500元,其中不超過1500元部分應繳稅1500×3%=45元,超過1500元不超過4500元部分應繳稅(4500-1500)×10%=300元,超過4500元部分應繳稅(6500-4500)×20%=400元。總共繳稅745元,稅後所得為9255元。
  已知小明這個月稅前所得為S元,請問他的稅後工資T是多少元。
輸入格式
  輸入為一個整數S,表示小明的稅前工資。所有評測資料保證小明的稅前工資為一個整百的數。
輸出格式
  輸出一個整數T,表示小明的稅後工資。
樣例輸入
10000
樣例輸出
9255
評測用例規模與約定
對於所有評測用例,1 ≤ T ≤ 100000。

#include<stdio.h>
int main()
{
	int s,A,T;
	scanf("%d",&s);
	A=s-3500; 
	if(s<=3500)
	printf("%d",s);
	else if(A<=1500&&A>0)
	{
	   T=3500+(1-0.03)*A;
	   printf("%d",T);
    }
    else if(A>1500&&A<=4500)
    {
    	T=3500+1455+(1-0.1)*(A-1500);
    	printf("%d",T);
	}
	else if(A>4500&&A<=9000)
	{
		T=3500+1455+2700+(1-0.2)*(A-4500);
		printf("%d",T);
	}
	else if(A>9000&&A<=35000)
	{
		T=3500+1455+2700+3600+(A-9000)*(1-0.25);
		printf("%d",T);
	}
	else if(A>35000)
	{
		T=3500+1455+2700+3600+19500+(A-35000)*0.7;
		printf("%d",T);
	}
	return 0;
 } 

整數比較1

Problem 1 整數比較1
描述:
編寫程式,對於從鍵盤輸入的2個整數,先輸出較大者的個位數字,然後輸出較小者的平方值。
輸入說明:
輸入的兩個整數之間以一個空格分隔。
輸出說明:
在一行上輸出兩個整數,整數之間以一個空格分隔,最後換行。
輸入樣例
樣例1輸入
29989 372
輸出樣例
樣例1輸出
9 138384

#include<stdio.h>
int main()
{
	int a,b,c;
	scanf("%d%d",&a,&b);
	if(a<b){
		c=a;
		a=b;
		b=c;	
	}
	printf("%d %d",a%10,b*b);
	
	return 0;
}

整數比較3

Problem 3整數比較3
描述:
從鍵盤輸入四個整數,要求按由小到大的順序輸出。
輸入說明:
輸入四個整數,以空格間隔。
輸出說明:
輸出排序後的整數,以空格間隔。
輸入樣例
樣例1輸入
-99 9 99 -9
輸出樣例
樣例1輸出
-99 -9 9 99

#include<stdio.h>
int main()
{
	int num[4];
	int i,j,k;
	
	for(i=0;i<4;i++)
	scanf("%d",&num[i]);
	
	for(i=0;i<3;i++)
	for(j=i;j<4;j++)
	if(num[i]>num[j]){
		k=num[i];
		num[i]=num[j];
		num[j]=k;	
	}
	
	for(i=0;i<4;i++)
	printf("%d ",num[i]);
	
	return 0;
}

成績分級_分支結構

標題
成績分級

描述
給出一個百分制的成績,要求輸出成績等級’A’,‘B’,‘C’,‘D’,‘E’。90分以上為’A’,8089分為’B’,7079分為’C’,60~69分為’D’,60分以下為’E’。

時間限制
1

記憶體限制
10000

類別
1

輸入說明
輸入一個百分制成績,浮點型,如78.5。

輸出說明
輸出成績和等級,成績保留兩位小數,如78.50 C

輸入樣例
78.5

輸出樣例
78.50 C

提示
格式輸出%.2f %c

#include<stdio.h>
int main()
{
	double num;
	scanf("%lf",&num);
	
	if(num<60)
	printf("%.2f %c",num,69);
	else if(num<70&&num>=60)
	printf("%.2f %c",num,68);
	else if(num<80&&num>=70)
	printf("%.2f %c",num,67);
	else if(num<90&&num>=80)
	printf("%.2f %c",num,66);
	else if(num>=90)
	printf("%.2f %c",num,65);
	
	return 0;

}

階梯電價_分支結構練習

標題
階梯電價計算

描述
電價分三個檔次,一檔:0110(含110)度電,每度電0.5元;二擋:110210(含210)度電,超出110部分每度電0.55元;三擋:超過210度電,超出210部分每度電0.70元,給出一個家庭一月用電量,請計算出應繳的電費。

時間限制
1

記憶體限制
10000

類別
1

輸入說明
輸入一月用電量,正實數,如70.5。

輸出說明
輸出應繳電費、檔次和該檔超額使用的電量資料,檔次使用字母A、B和C表示,分別對應一、二和三檔,電量和電費使用浮點型,結果四捨五入,保留小數點後兩位小數

輸入樣例
70.5

輸出樣例
35.25 A 0.00

提示
格式輸出%.2f %c %.2f

#include<stdio.h>
int main()
{
	double num,money;
	int i,j,k;
	
	scanf("%lf",&num);
	if(num<=110)
	printf("%.2f %c %.2f",num*0.5,65,0);
	else if(num>110&&num<=210)
	printf("%.2f %c %.2f",55+(num-110)*0.55,66,num-110);
	else if(num>210)
	printf("%.2f %c %.2f",55+100*0.55+(num-210)*0.7,67,num-210); 
	
	return 0;
}

英文表示數字

題目描述:輸入一個0~9的一位整數,輸出其對應的英文單詞。要求用switch結構完成。

示例:
輸入:0
輸出:zero
輸入:8
輸出:eight

#include<stdio.h>
int main()
{
	int num;
	scanf("%d",&num);
	
	switch(num){
	case 0:printf("zero");break;
	case 1:printf("one");break;
	case 2:printf("two");break;
	case 3:printf("three");break;
	case 4:printf("four");break;
	case 5:printf("five");break;
	case 6:printf("six");break;
	case 7:printf("seven");break;
	case 8:printf("eight");break;
	case 9:printf("nine");break;
	default:break;
	}
}

數字個數統計2–迴圈條件設定練習

標題
數字個數統計2

描述
輸入一個正整數N(300≤N≤500),統計N(1~N)以內奇數、偶數和能分別被3、5、7整除的數字個數。

時間限制
1

記憶體限制
10000

類別
1

輸入說明
輸入正整數N(300≤N≤500),如452

輸出說明
輸出N以內奇數、偶數和能分別被3、5、7整除的數字個數

輸入樣例
452

輸出樣例
226 226 150 90 64

提示
編制子函式雙數Even()、單數Odd()、Sum_3()、Sum_5()和Sum_7()分別實現數字統計和輸出,無返回值,各輸出之間空一個空格;
主函式呼叫

#include<stdio.h>
void Even(int x);//雙數 
void Odd(int x);//單數 
void Sum_3(int x);
void Sum_5(int x);
void Sum_7(int x);
int main()
{
	int num;
	scanf("%d",&num);
	
	if(num<=500&&num>=300){
	Odd(num);//單數 
	Even(num);//雙數 
	Sum_3(num);
	Sum_5(num);
	Sum_7(num);
	}
	
	return 0;
}
void Even(int x){
	printf("%d ",x/2);
}
void Odd(int x){
	if(x%2==0)
	printf("%d ",x/2);
	else 
	printf("%d ",x/2+1);
}
void Sum_3(int x){
	printf("%d ",x/3);
}
void Sum_5(int x){
	printf("%d ",x/5);
}
void Sum_7(int x){
	printf("%d",x/7);
}

分解質因數

分解質因數

題目描述:
每個非素數(合數)都可以寫成幾個素數(也可稱為質數)相乘的形式,
這幾個素數就都叫做這個合數的質因數。編寫程式將一個正整數分解質因數

輸入描述:
輸入一個正整數n(2<n<1000)

輸出描述:
形如abb*c,質因數按照從小到大的順序排列

輸入樣例:
90

輸出樣例:
233*5

#include<stdio.h>
int prine(int i);
int main()
{
	int number;
	int c,d;
	scanf("%d", &number);

		int i = 2;
		do 
		{
			if (!prine(i))
			{
				while (number%i == 0)
				{
					if (number%i == 0 && number / i != 1) printf("%d*", i);
					else if (number%i == 0 && number / i == 1) printf("%d", i);
					number /= i;
				} 
				
			}
			i++;
		} while (number != 1);
	
	return 0;
}
int prine(int i)
{
	int c,d;
	c=0;
	for (int b = 2; b < i; b++)
	{
		d = i%b;
		if (!d)
		{
			c = 1;
			break;
		}
	}
	
	return c;
}

獎金計算

2-6 獎金計算

時間限制:1 S

問題描述:
企業發放的獎金根據利潤提成。利潤低於或等於100000元的,獎金可提10%;
利潤高於100000元,低於等於200000元(100000<I≤200000)時,低於等於100000元的部分按10%提成,高於100000元的部分,可提成 7.5%;
200000<I≤400000時,低於等於200000元部分仍按上述辦法提成,(下同),高於200000元的部分按5%提成;
400000<I≤600000元時,高於400000元的部分按3%提成;
600000<I≤1000000時,高於600000元的部分按1.5%提成;
I>1000000時,超過1000000元的部分按1%提成。從鍵盤輸入當月利潤I,求應發獎金總數。

輸入為一個整數(≤1200000),當月利潤。

輸出一個整數,獎金。

輸入示例
900

輸出示例
90

#include<stdio.h>
int main()
{
	int x;
	double a,b,c,d,e,f;
	scanf("%d",&x);
	a=0.1*x;
	b=10000+(x-100000)*0.075;
	c=17500+(x-200000)*0.05;
	d=27500+(x-400000)*0.03;
	e=33500+(x-600000)*0.015;
	f=39500+(x-1000000)*0.01;
	if(x<=100000)
	printf("%d",(int)a);
	else if(x<200000&&x>=100000)
	printf("%d",(int)b);
	else if(x<400000&&x>=200000)
	printf("%d",(int)c);
	else if(x<600000&&x>=400000)
	printf("%d",(int)d);
	else if(x<1000000&&x>=600000)
	printf("%d",(int)e);
	else
	printf("%d",(int)f);
	
	return 0;
	
}

親和數

problem 4-6 親和數
時間限制:1S

題目描述:
古希臘數學家畢達哥拉斯在自然數研究中發現,220 的所有真約數(即不是自身的約數)之和為:
1+2+4+5+10+11+20+22+44+55+110=284
而 284 的所有真約數為 11、22、44、7171、142142,加起來恰好為 220。人們對這樣的數感到很驚奇,並稱之為親和數。
一般地講,如果兩個數中任何一個數都是另一個數的真約數之和,則這兩個數就是親和數。

你的任務就編寫一個程式,判斷給出的兩個整數m和n是不是親和數(m和n可以相同)。

輸入說明
輸入為兩個整數n和m,(1<n,m≤10000),n和m之間用空格分隔

輸出說明
在同一行上輸出為三項,用空格分隔。
第一項表示判斷結果,如果兩個數是親和數輸出yes,否則輸出no;
第二項是一個整數,表示n的真約數個數;
第三項是一個整數,表示m的真約數個數。

測試樣例
輸入樣例1:
220 284
輸出樣例1:
yes 11 5

輸入樣例2:
4 3
輸出樣例2:
no 2 1

#include<stdio.h>
int main()
{
	int a,b,i,sum1=0,sum2=0,n=0,m=0;
	scanf("%d %d",&a,&b);//輸入a,b
	for(i=1;i<a;i++) 
	{
		if(a%i==0)
		{
			sum1=sum1+i;
			n=n+1;
		}
	}
	for(i=1;i<b;i++)
	{
		if(b%i==0)
		{
			sum2=sum2+i;
			m=m+1;
		}
	}//算a,b各自公約數之和
	if(sum1==b&&sum2==a)
	{
		printf("yes ");
		printf("%d %d",n,m);
	 } 
	 else
	 {
	 	printf("no ");
	 	printf("%d %d",n,m);
	 }
	 return 0;
}

質數求和

problem 4-6 質數求和

時間限制:1S

問題描述
輸入一個大於20的正整數p,求出正整數範圍內第p個質數(或素數,大於1且只能被1和自己整除的正整數,)到第p+10個質數之和。其中,第1個質數為2,第2個質數為3,第3個質數為5,第4個質數為7,依次類推。

輸入說明
一行輸入1個整數p,20< p <150。

輸出說明
第p個質數到第p+10個質數之和。

輸入樣例:
21
輸出樣例:
1081

#include<stdio.h>
int prine(int i);
int main()
{
	int p;
	int i,j,k,flag;
	int sum=0;
	scanf("%d",&p);
	j=1;
	flag=0;
	for(i=3;i<65000;i++){
		if(!prine(i)){
			if(flag==1){
			sum=sum+i;
			}
			j++;
			if(j==p+10)
			break;
		}
		if(j==p-1){
			flag=1;
		}
	}
	
	printf("%d",sum);
	
	return 0;
}

int prine(int i)
{
	int c,d;
	c=0;
	for (int b = 2; b < i; b++)
	{
		d = i%b;
		if (!d)
		{
			c = 1;
			break;
		}
	}
	
	return c;
}

歡迎打賞三連