C++
//3.4? switch語句
//
//【例3.20】一個最簡單的計算器支持+,-,*,/四種運算。輸入只有一行:兩個參加運算的數(shù)和一個操作符(+,-,*,/)。輸出運算表達式及結果??紤]下面兩種情況:
//(1)如果出現(xiàn)除數(shù)為0的情況,則輸出:Divided by zero!
//(2)如果出現(xiàn)無效的操作符(即不為+,-,*,/之一),則輸出:Invalid operator!
//default :cout<<"非法字符";
#include<iostream>
using namespace std;
?
int main()
{
???????? int a,b;
???????? char c;
???????? cin>>a>>c>>b;
???????? switch(c)
???????? {
???????? case '-'? :cout<<a-b;break;
???????? case '+'? :cout<<a+b;break;
???????? case '*'? :cout<<a*b;break;
???????? case '/'? :
???????? if (b==0)? cout<<"Zero!";
???????? else? cout<<a/b;break;
???????? default? :cout<<"非法字符";break;?????
???????? }
???????? return 0;
}
?
?
//用循環(huán)計算1+2+3...+99+100 的值
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
???????? int a;//定義新變量
???????? for(int i=0;i<=100;i++)
???????? {
???????? a=a+i;//累加???
???????? }
???????? cout<<a;
???????? return 0;
}
?
?
日本一位中學生發(fā)現(xiàn)一個奇妙的定理,請角谷教授證明,而教授無能為力,于是產(chǎn)生了角谷猜想。猜想的內(nèi)容:任給一個自然數(shù),若為偶數(shù)則除以2,若為奇數(shù)則乘3加1,得到一個新的自然數(shù)后按上面的法則繼續(xù)演算。若干次后得到的結果必為1。請編寫代碼驗證該猜想:求經(jīng)過多少次運算可得到自然數(shù)1。
#include<iostream>
using namespace std;
int main()
{
???????? int a=0,c=0;
???????? cin>>a;
???????? while(a!=1)//a!=1時循環(huán)
???????? {
?????????????????? if(a%2==0)
?????????????????? {
?????????????????? a=a/2;
?????????????????? }else{
?????????????????? a=a*3+1;
?????????????????? }
?????????????????? c++;
???????? }
???????? cout<<c;
???????? return 0;
}
?
?
所謂水仙花數(shù),就是指各位數(shù)字立方之和等于該數(shù)的數(shù);a^3稱為a的立方,即等于a×a×a的值。例如:因為153=1^3+5^3+3^3,所以153是一個水仙花數(shù)。
#include<iostream>
using namespace std;
int main()
{
???????? for(int i=1;i<=9;i++)//拆分后輸入
???????? for(int j=0;j<=9;j++)
???????? for(int k=0;k<=9;k++)
???????? {
?????????????????? if(i*i*i+j*j*j+k*k*k==i*100+j*10+k)
?????????????????? {
??????????????????????????? cout<<i<<j<<k<<endl;
?????????????????? }
???????? }
???????? return 0;
}
?
?
期末考試結束,王老師想知道這次考試中成績優(yōu)秀的同學有多少人(考試成績大于或等于90表示成績優(yōu)秀),請你編程幫助王老師來計算出成績優(yōu)秀的人數(shù)。
輸入格式
第一行,一個整數(shù)n代表有n個人的成績(n<=100)
第二行,n個人的成績,用空格隔開
輸出格式
成績優(yōu)秀的同學的總人數(shù)
#include<iostream>
using namespace std;
int main()
{
???????? int n,a[101],ans=0;//a【】數(shù)組
???????? cin>>n;
???????? for(int i=1;i<=n;i++)
???????? cin>>a[i];
???????? for(int i=1;i<=n;i++)
???????? {
?????????????????? if(90<=a[i])
?????????????????? {
??????????????????????????? ans++;
?????????????????? }
???????? }
???????? cout<<ans;
???????? return 0;
}
?
?
?
在已知一組整數(shù)中,有這樣一種數(shù)非常怪,它們不在第一個,也不在最后一個,而且剛好都比左邊和右邊相鄰的數(shù)大,你能找到它們嗎?
輸入格式
第一行為整數(shù)m,表示輸入的整數(shù)個數(shù)。( 3<= m <=100 ) 第二行為m個整數(shù)。
輸出格式
若干個支撐數(shù),每行一個。
#include<iostream>
using namespace std;
int main ()
{
???????? int a[101],b,c=0;
???????? cin>>b;
???????? for(int i=1;i<=b;i++)
???????? {
???????? cin>>a[i];
???????? }
???????? for(int i=2;i<=b-1;i++)
???????? {
?????????????????? if(a[i]>a[i-1]&&a[i]>a[i+1])
?????????????????? {
??????????????????????????? cout<<a[i]<<endl;
?????????????????? }
???????? }
}
?
?
找找誰的身高超過全家的平均身高。全家n口人,輸入輸出數(shù)據(jù)如下: (平均身高保留一位小數(shù))
輸入格式
第一行有一個整數(shù)n( 1 < n < 11 )。第二行是n個整數(shù),用空格隔開。
輸出格式
第一行為全家的平均身高(保留一位小數(shù));第二行有若干個數(shù),為超過平均身高的人的身高厘米數(shù)。
樣例輸入
?
7
175 160 172 158 178 162 142
?
樣例輸出
?
AVE=163.9
1:175 3:172 5:178
#include<iostream>
using namespace std;
int main ()
{
???????? int b,a[300];
???????? double c=0;
???????? cin>>b;
???????? for(int i=1;i<=b;i++)
???????? {
?????????????????? cin>>a[i];
?????????????????? c=c+a[i];
???????? }
???????? printf("AVE=%.1f\n",c/b);
???????? for(int i=1;i<=b;i++)
???????? {
?????????????????? if(c/b<a[i])
?????????????????? {
??????????????????????????? cout<<i<<":"<<a[i]<<" ";
?????????????????? }
???????? }
?
}
?
?
?
//數(shù)字48--51;小寫字母97--122 ;
//大寫字母65--90 ;
//把英文字母表的小寫字母按順序和倒序打印出來。(每行13個)
//輸入格式
//無
//輸出格式
//輸出四行
//樣例輸出
//
//abcdefghijklm
//nopqrstuvwxyz
//zyxwvutsrqpon
//mlkjihgfedcba
//
//
#include<iostream>
using namespace std;
int main()
{
???????? char a=122,c=97;
???????? int b=0;
???????? for(char i=97;i<=a;i++)
???????? {
?????????????????? cout<<i;
?????????????????? b++;
?????????????????? if(b==13)
?????????????????? {
??????????????????????????? b=0;
??????????????????????????? cout<<endl;
?????????????????? }
??????????????????
???????? }
???????? for(char j=122;c<=j;j=j-1)
???????? {
?????????????????? cout<<j;
?????????????????? b=b+1;
?????????????????? if(b==13)
?????????????????? {
??????????????????????????? b=0;
??????????????????????????? cout<<endl;
?????????????????? }
??????????????????
???????? }
????????
???????? return 0;
}
//題目描述
//n個數(shù)中最大的那個數(shù)在哪里?輸出其位置,若有多個最大數(shù)則都要輸出。
//輸入格式
//第一行:n( 3 <= n <= 10) 第二行:空格隔開的n個數(shù)
//輸出格式
//輸出若干個數(shù),表示最大數(shù)的位置,每行一個。
//樣例輸入
//
//5
//1 2 6 3 6
//
//樣例輸出
//
//3
//5
#include<iostream>
using namespace std;
int main()
{
???????? int a[10+10];
???????? int sum=0,n,ans=-99999;//定義儲存最大數(shù)下標的數(shù)和最大數(shù)初始值
???????? cin>>n;
????????
???????? for(int i=1;i<=n;i++)
???????? {
?????????????????? cin>>a[i];
?????????????????? if(a[i]>=ans)
?????????????????? {
??????????????????????????? ans=a[i];
?????????????????? }
???????? }
???????? for(int i=1;i<=n;i++)
???????? {
???????? if(a[i]==ans)
???????? {
??????????????????
???????? cout<<i<<endl;
???????? }
??????????????????
???????? }???????
???????? return 0;
}
?
?
#include<iostream>
using namespace std;
int main()
{
???????? int a[10+10];
???????? int sum=0,n,minn=99999;
???????? double q=0;
???????? cin>>n;
???????? q=n;
???????? for(int i=1;i<=n;i++)
???????? {
?????????????????? cin>>a[i];
?????????????????? sum=sum+a[i];????????
?????????????????? if(a[i]<=minn)
?????????????????? {
??????????????????????????? minn=a[i];
?????????????????? }
???????? }
????????
???????? for(int i=1;i<=n;i++)
???????? {
?????????????????? if(a[i]==minn)
?????????????????? {
?????????????????? sum=sum-a[i];
?????????????????? q=q-1;
?????????????????? }???????
???????? }???????
???????? printf("%.1f",sum/q);
???????? return 0;
}
?
請從鍵盤讀入一個整數(shù)n,代表有n行,輸出n行的9*9乘法表。
?
比如,假設n=5,則輸出如下:
?
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
輸入格式
一個整數(shù)n(n<=9)
輸出格式
n行的9*9乘法表
#include<iostream>
using namespace std;
int main()
{
???????? int n,ans=0;
???????? cin>>n;
???????? for(int i=1;i<=n;i++)//i行數(shù)
???????? {
?????????????????? for(int j=1;j<=i;j++)//j每行n*的數(shù)
?????????????????? {
?????????????????? cout<<i<<'*'<<j<<'='<<i*j<<' ';?????????
?????????????????? }
?????????????????? cout<<endl;?????
???????? }
}
?
?
?
?
題目描述
輸入n個整數(shù)的數(shù)列,請找出數(shù)列中最小數(shù)所在的位置(若有多個最小數(shù),則選最左邊的那個最小數(shù)),把它與數(shù)列的第一個數(shù)對調(diào),其他數(shù)的位置不動,輸出此數(shù)列。
輸入格式
數(shù)組數(shù)的個數(shù)n?。ǎ危迹剑玻埃埃?一行n個數(shù),用空格分開(都<=32767)
輸出格式
第一行:最小數(shù)所在的位置(只需要輸出最左邊的一個的位置) 第二行:交換后的數(shù)組(一個空格隔開)
樣例輸入
?
3
2 6 1
?
樣例輸出
?
3
1 6 2
?
?
#include<iostream>
using namespace std;
int main()
{
???????? int n,a[220],minn=999,m=0,g;//m儲存最小數(shù)位置 ,g被換位的數(shù)
???????? cin>>n;
???????? for(int i=1;i<=n;i++)
???????? {
???????? cin>>a[i];
???????? g=a[1];
???????? if(a[i]<minn)
???????? {
???????? minn=a[i];
???????? m=i;
???????? a[1]=a[i];//第一個數(shù)變?yōu)樽钚?shù)(下標變)
???????? }
???????? }
???????? cout<<m<<endl;
???????? for(int i=1;i<m;i++)
???????? {
???????? cout<<a[i]<<' ';????????
???????? }
???????? cout<<g<<' ';
???????? for(int i=m+1;i<=n;i++)
???????? {
???????? cout<<a[i]<<' ';????????
???????? }
???????? return 0;
}
?
?
?
題目描述
輸入某個整數(shù),如果輸入的整數(shù)在1-9范圍內(nèi),則輸出相對應的單詞,否則輸出'out'
輸入格式
一行,一個整數(shù)n。
輸出格式
整數(shù)n相對應的小寫英文單詞或'out'。
樣例輸入
?
1
?
樣例輸出
?
one
?
?
#include<iostream>
using namespace std;
int main()
{
???????? int a;
???????? cin>>a;
???????? switch(a)
???????? {
?????????????????? case 1:cout<<"one";break;
?????????????????? case 2:cout<<"two";break;
?????????????????? case 3:cout<<"there";break;
?????????????????? case 4:cout<<"four";break;
?????????????????? case 5:cout<<"five";break;
?????????????????? case 6:cout<<"six";break;
?????????????????? case 7:cout<<"seven";break;
?????????????????? case 8:cout<<"eight";break;
?????????????????? case 9:cout<<"nine";break;
?????????????????? default:cout<<"out";
???????? }
???????? return 0;
}
?
?
?
題目描述
小明夏天去買冰棍,老板說買30個及以上1元/個, 20~29個1.2元/個,10~19個1.5元/個,10個以下1.8元/個!請從鍵盤讀入小明買冰棍的數(shù)量,計算小明應該付的價格(價格保留1位小數(shù))!
輸入格式
一個整數(shù)n代表小明購買的冰棍的數(shù)量
輸出格式
小明應付的金額
樣例輸入
?
30
?
樣例輸出
?
30.0
?
#include<iostream>
using namespace std;
int main()
{
???????? double a,b;
???????? cin>>a;
???????? b=a/10;
???????? switch((int)b)//switch不支持小數(shù),要用(int)強制轉(zhuǎn)換
???????? {
?????????????????? case 0:printf("%.1f",a*1.8);break;
?????????????????? case 1:printf("%.1f",a*1.5);break;
?????????????????? case 2:printf("%.1f",a*1.2);break;
?????????????????? default:printf("%.1f",a*1);
???????? }
???????? return 0;
}
?
?
?
題目描述
?
輸入一個正整數(shù)n,求1!-2!+3!-4!+……+N!的結果。比如:n=3,則結果 = 1-(1*2)+(1*2*3) = 5。
n! = 1 * 2 * 3 * 4 * ... * n,也就是1~n之間所有數(shù)的積,比如:5!=1*2*3*4*5=120。
?
輸入格式
一個正整數(shù)n(n<=10)
輸出格式
一個整數(shù),代表運算結果。
樣例輸入
?
3
?
樣例輸出
?
5
?
#include<iostream>
using namespace std;
int main()
{
???????? int a,b=0,d=0,p=1;
???????? cin>>a;
???????? for(int i=1;i<=a;i++)
???????? {
?????????????????? int c=1*p;
?????????????????? for(int j=1;j<=i;j++)
?????????????????? {
??????????????????????????? c=c*j;
?????????????????? }???????
???????? d=d+c;
???????? p=-p;
???????? }
???????? cout<<d;
}
?
//題目描述
//韓信有一對士兵,他想知道有多少人,他就讓士兵報數(shù),如果按照1到5報數(shù),最末一個士兵報的數(shù)為1;按照1到6報數(shù),最末一個士兵報的數(shù)為5;按照1到7報數(shù),最末一個士兵報的數(shù)為4;最后再按1到11報數(shù),最末一個士兵報的數(shù)為10,請問韓信這隊士兵最少有多少人?
//輸入格式
//無
//輸出格式
//輸出這隊士兵最少有多少人
#include<iostream>
using namespace std;
int main()
{
???????? int i=1;
???????? while(i)
???????? {
?????????????????? if(i%5==1&&i%6==5&&i%7==4&&i%11==10)
?????????????????? {
?????????????????? cout<<i;
?????????????????? break;??????
?????????????????? }
?????????????????? i++;?
???????? }
}