题目1:八戒买礼物
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int a[505];
for(int i = 1;i<=n;i++)
cin>>a[i];
for(int i = 1;i<n;i++)
{
for(int j = i+1;j<=n;j++)
{
if(a[i]>a[j])
swap(a[i],a[j]);
}
}
int sum = 0;
for(int i = 1;i<=n;i++)
{
if(m>=a[i])
{
sum++;
m-=a[i];
}
}
cout<<sum<<endl;
return 0;
}
题目2:倒置排序
题目3:向量点积计算
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[1001],b[1001];
for(int i = 1;i<=n;i++)
cin>>a[i];
for(int i = 1;i<=n;i++)
cin>>b[i];
int sum = 0;
for(int i = 1;i<=n;i++)
sum+=a[i]*b[i];
cout<<sum;
return 0;
}
题目4:计算鞍点
#include<stdio.h> int main() { int a[5][5] = {0}, b[5] = {0}, c[5] = {0}; int tag = 0; for(int i=0; i<5; i++) { for(int j=0; j<5; j++) { scanf("%d", &a[i][j]); if(i == 0) c[j] = a[i][j]; if(b[i] < a[i][j]) b[i] = a[i][j]; if(c[j] > a[i][j]) c[j] = a[i][j]; } } for(int x=0; x<5; x++) { for(int y=0; y<5; y++) { if(b[x] == c[y]) { printf("%d %d %d", x+1, y+1, b[x]); tag = 1; } } } if(tag == 0) printf("not found"); return 0; }
题目5:计算矩形边缘元素之和
#include<iostream>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
int a[105][105];
int sum = 0;
for(int i = 1;i<=m;i++)
for(int j = 1;j<=n;j++)
{
cin>>a[i][j];
if(i==1||i==m||j==1||j==n)
sum+=a[i][j];
}
cout<<sum<<endl;
return 0;
}
题目6:矩形交换行
#include<iostream>
using namespace std;
int main()
{
int m,n;
int a[5][5];
for(int i = 0;i<5;i++)
for(int j = 0;j<5;j++)
cin>>a[i][j];
cin>>m>>n;
for(int j = 0;j<=4;j++)
{
swap(a[m-1][j],a[n-1][j]);
}
for(int i = 0;i<5;i++)
{
for(int j = 0;j<5;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
题目7:数组逆序重放
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[101];
for(int i = 1;i<=n;i++)
cin>>a[i];
for(int i = n;i>=1;i--)
cout<<a[i]<<" ";
return 0;
}
题目8:年龄与疾病
#include<iostream>
using namespace std;
int main()
{
int n,b=0,c=0,d=0,e=0;
cin>>n;
int a[101];
for(int i = 1;i<=n;i++)
{
cin>>a[i];
if(a[i]>=0&&a[i]<=18)
b++;
else if(a[i]>=19&&a[i]<=35)
c++;
else if(a[i]>=36&&a[i]<=60)
d++;
else if(a[i]>=61)
e++;
}
printf("%.2f%\n%.2f%\n%.2f%\n%.2f%\n",b*100.0/n,c*100.0/n,d*100.0/n,e*100.0/n);
return 0;
}
题目9:校门外的树
#include<iostream>
using namespace std;
int main()
{
int l,m;
cin>>l>>m;
int a[10001]={0};
for(int i = 0;i<m;i++)
{
int p,q;
cin>>p>>q;
for(int j = p;j<=q;j++)
a[j] = 1;
}
int sum = 0;
for(int i = 0;i<=l;i++)
if(a[i]==0)
sum++;
cout<<sum<<endl;
return 0;
}
题目10:反反复复
#include <iostream> #include <algorithm> using namespace std; char a[107][27]; int main() { int id = 0, n; string p; cin>>n>>p; int h = p.size()/n; for(int i = 0; i < h; i++){ if(i%2 == 0){ for(int j = 0; j < n; j++) a[i][j] = p[id++]; }else{ for(int j = n-1; j >= 0; --j) a[i][j] = p[id++]; } } string ans = ""; for(int i = 0; i < n; i++){ for(int j = 0; j < h; j++) ans += a[j][i]; } cout<<ans; return 0; }
题目11:蛇形填充数组
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[11][11],cnt=1,x,y;
cin >> n;
for(int i=1;i<=n;i++){
if(i%2==1){
for(int j=1;j<=i;j++){
a[i-j+1][j] = cnt;
cnt++;
}
}
else{
for(int j=i;j>=1;j--){
a[i-j+1][j] = cnt;
cnt++;
}
}
}
if(n%2==0){
for(int i=n+1;i<=n*2-1;i++){
if(i%2==1){
for(int j=i-n+1;j<=n;j++){
a[i-j+1][j] = cnt;
cnt++;
}
}
else{
for(int j=n;j>=i-n+1;j--){
a[i-j+1][j] = cnt;
cnt++;
}
}
}
}
else{
for(int i=n+1;i<=n*2-1;i++){
if(i%2==1){
for(int j=i-n+1;j<=n;j++){
a[i-j+1][j] = cnt;
cnt++;
}
}
else{
for(int j=n;j>=i-n+1;j--){
a[i-j+1][j] = cnt;
cnt++;
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
题目12:字符串中的正整数
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int t = 0,p = 0;
for(int i = 0;i<s.length();i++)
{
if(s[i]<=57&&s[i]>=48)
{
cout<<s[i];
t = 1;
if(i+1<=s.length()&&(s[i+1]<48||s[i+1]>57))
cout<<endl;
}
}
if(t == 0)
cout<<"None"<<endl;
return 0;
}