有關程式設計c++(急用)
1.設計一個程式,將串列中的整數相加,求其總和。假如輸入的第一個數字代表後續尚要輸入的數目個數。你所設計的程式,一個輸入敘述式只能讀取一個數值。標準的輸入串列應該如下列所示:
5 100 200 300 400 500
其中的5代表後續有5個數值需要相加。
2.設計一個程式,能夠計算和列印出幾個整數的平均值。假設讀取的最後一個的數字是旗標值9999。標準的輸入串列應該如下列所示
10 8 11 7 9 9999
3.設計一個程式,能夠使用表格將1到256的十進位數字,印出等值的二進位、八進位和十六進位數字。
4.輸入一個四位數的整數,然後按照下述方法加密:先將每個位數的數字加7,然後除以10,
取其餘數代替原來的數字.然後將第一個位數的數字與第三個位數的數字交換,將第二
個位數的數字和第四個位數的數字交換.請設計一個程式,能夠
輸入加密的四位數整數,然後將它解密還原成原來的數目.
1 則回答
最佳解答
你好,很榮興又來幫你解答了
第一題
#include <iostream>
using namespace std;
int main(){
int times;
int sum=0,n;
cin >> times;
while(times--){
cin >> n;
sum+=n;
}
cout << sum << endl;
return 0;
}
第二題:這題我有問題,9999也要算進平均嗎?我是沒把9999算進平均值
#include <iostream>
using namespace std;
int main(){
int times=0;
int sum=0,n;
while(1){
cin >> n;
if(n==9999) break;
sum+=n;
times++;
}
cout << sum/times << endl;
return 0;
}
第三題:#include <iostream>
#include <string>
using namespace std;
string baseconv(int base,int n){
int temp;
string ans="";
while(n){
temp=n%base;
if(temp>=10) ans = (char)(temp - 10 + 'A') + ans;
else ans = (char)(temp + '0') + ans;
n/=base;
}
return ans;
}
int main(){
int times=0;
int sum=0,n;
cout << "十進位" << "\t二進位" << "\t\t八進位" << "\t十六進位" << endl;
for(n=1;n<257;n++){
cout << dec << n << "\t";
cout << baseconv(2,n) << "\t";
if(n<128) cout << "\t";
cout << oct << n << "\t";
cout << hex << n << "\n";
}
return 0;
}
第四題:
#include <iostream>
#include <string>
#define swap(a,b) {int t=a; a=b; b=t;}
using namespace std;
int main(){
char s[10];
cin >> s;
swap(s[0],s[2]);
swap(s[1],s[3]);
for(int i=0;i<4;i++)
s[i] = (s[i] - '0' + 3) % 10 + '0';
cout << "解密後:" << s << endl;
return 0;
}