基础语法数组的练习
第一题数组替换
题目链接:https://www.acwing.com/problem/content/739/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int x[10];
int n;
for (int i=0;i<=9;i++){
cin >>n;
if(n<=0) x[i]=1;
else x[i]=n;
printf("X[%d] = %d\n",i,x[i]);
}
return 0;
}
第二题数组填充
题目链接:https://www.acwing.com/problem/content/740/
#include <cstdio>
#include <iostream>
using namespace std;
int main(){
int v;
int a[10];
cin >>v;
for(int i = 1;i<10;i++){
a[0]=v;
a[i]=a[i-1]*2;
}
for(int i=0;i<10;i++){
printf("N[%d] = %d\n",i,a[i]);
}
return 0 ;
}
第三题数组选择
题目链接:https://www.acwing.com/problem/content/741/
#include <cstdio>
#include <iostream>
using namespace std;
int main(){
double a[100];
double n;
for (int i=0;i<100;i++){
cin>>n;
a[i]=n;
}
for(int i=0;i<100;i++){
if(a[i]<=10)printf("A[%d] = %.1lf\n",i,a[i]);
}
return 0;
}
第四题数组中的行
题目链接:https://www.acwing.com/problem/content/745/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int l;
char input;
double m[12][12];
int n;
cin>>l>>input;
for(int i= 0 ;i<12;i++){
for(int j=0;j<12;j++){
cin>>m[i][j];
//m[i][j]=n
}
}
double sum=0;
for(int i=0;i<12;i++){
sum+=m[l][i];
}
if(input=='S')cout<<sum<<endl;
else printf("%.1lf",sum/12);
return 0;
}
第五题数组的右上半部分
题目链接:https://www.acwing.com/problem/content/747/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char n;
cin>>n;
double a[12][12];
for(int i = 0;i<12;i++)
for(int j=0;j<12;j++)
cin>>a[i][j];
double s=0;
double sum=0;
for(int i=0;i<12;i++){
for (int j=i+1;j<12;j++){
s++;
sum+=a[i][j];
}
}
if(n=='S')cout <<sum;
else printf("%.1lf",sum/s);
return 0;
}
第六题数组的左上半部分
题目链接:https://www.acwing.com/problem/content/749/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char n;
cin>>n;
double a[12][12];
for(int i = 0;i<12;i++)
for(int j=0;j<12;j++)
cin>>a[i][j];
double s=0;
double sum=0;
for(int i=0;i<12;i++){
for (int j=0;j<12;j++){
if(i+j<=10){
s++;
sum+=a[i][j];}
}
}
if(n=='S')cout <<sum;
else printf("%.1lf",sum/s);
return 0;
}
第七题数组的上方区域
题目链接:https://www.acwing.com/problem/content/751/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char n;
cin>>n;
double a[12][12];
for(int i = 0;i<12;i++)
for(int j=0;j<12;j++)
cin>>a[i][j];
double s=0;
double sum=0;
for(int i=0;i<5;i++){
for (int j=i+1;j+i<11;j++){
s++;
sum+=a[i][j];
}
}
if(n=='S')cout <<sum;
else printf("%.1lf",sum/s);
return 0;
}
第八题数组的左方区域
题目链接:https://www.acwing.com/problem/content/753/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char n;
cin>>n;
double a[12][12];
for(int i = 0;i<12;i++)
for(int j=0;j<12;j++)
cin>>a[i][j];
double s=0;
double sum=0;
for(int i=1;i<=5;i++){
for (int j=0;j<=i-1;j++){
s+=1;
sum+=a[i][j];
}
}
for(int i=6;i<=10;i++){
for (int j=0;j<=10-i;j++){
s+=1;
sum+=a[i][j];
}
}
if(n=='S')cout <<sum;
else printf("%.1lf",sum/s);
return 0;
}
第九题平方矩阵
做出来但是不是特别懂
题目链接:https://www.acwing.com/problem/content/755/
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n;
while (cin >> n, n){
for (int i = 0; i < n; i ++){
for(int j = 0; j < n; j ++){
cout << min(min(i + 1, j + 1), min(n - i, n - j)) << " ";
}
cout << endl ;
}
cout << endl;
}
return 0;
}
第十题数组变换
题目链接:https://www.acwing.com/problem/content/742/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int a[20],b[20];
for(int i =0;i<20;i++)cin >>a[i];
for(int i=19,j=0;i>=0;i--,j++) b[j]=a[i];//这里的j也可以换成19-i最后结果都是一样都可以AC
for(int i=0;i<20;i++) printf("N[%d] = %d\n",i,b[i]);
return 0;
}
第十一题斐波那契数列
题目链接:https://www.acwing.com/problem/content/743/
**这个题特别要注意数组不能用int,要用long long不然会数组越界。就AC不了
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
long long a[60];
a[0]=0,a[1]=1;
for(int i=2;i<60;i++)a[i]=a[i-1]+a[i-2];
int n;
cin >>n;
while(n--){
int x;
cin >>x;
printf("Fib(%d) = %lld\n",x,a[x]);}
return 0;
}
第十二题最小数和它的位置
题目链接:https://www.acwing.com/problem/content/744/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
int a[1001];
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int p=0;
for (int i=1;i<n;i++){
if(a[i]<a[p]) p=i;
}
printf("Minimum value: %d\n",a[p]);
printf("Position: %d",p);
return 0;
}
评论已关闭