定义长度为10的一维数组,计算前项元素加后项元素之和保存于另一组数组中,并以3个数为一行的形式输出
再定义一个9个元素的数组存储
#include <stdio.h>
int main()
{
int a[10],b[9],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
b[i] = a[i] + a[i+1];
printf("%d ",b[i]);
if(i%3==2)
printf("\n");
}
}
首尾的是否相加呢?如果相加可以这样
#include <stdio.h>
int main() {
int arr1[10];
int arr2[10];
for (int i = 0; i < 10; i++) {
arr1[i] = i + 1;
}
for (int i = 0; i < 10; i++) {
arr2[i] = arr1[i] + arr1[(i + 1) % 10];
}
for (int i = 0; i < 10; i++) {
printf("%d ", arr2[i]);
if ((i + 1) % 3 == 0) {
printf("\n");
}
}
return 0;
}
代码块:
#include <iostream>
using namespace std;
void input(int *n, int m);
void change(int *n, int m);
void print(int *n, int m);
int main()
{
int a[10];
input(a, 10);
change(a, 10);
print(a, 10);
system("pause");
return 0;
}
void input(int *n, int m)
{
int *p;
for (p=n, cout<<"Please enter "<<m<<" numbers: "; p<n+m; cin>>*p++);
}
void print(int *n, int m)
{
int *p;
for (p=n, cout<<"New line: "; p<n+m; cout<<*p++<<' ');
cout<<endl;
}
void change(int *n, int m)
{
int *p, *max, *min, t;
for (p=n, min=n; p<n+m; p++)
if (*p<*min) min=p;
t=*n, *n=*min, *min=t;
for (p=n, max=n+m-1; p<n+m; p++)
if (*p>*max) max=p;
t=*(n+m-1), *(n+m-1)=*max, *max=t;
}
int arr[10];
int sum_arr[10];
for(int i=0; i<10; i++){
if(i==9){
sum_arr[i] = arr[i]; // 最后一个元素没有后项元素,直接复制
}
else{
sum_arr[i] = arr[i] + arr[i+1]; // 其他元素求和
}
}
for(int i=0; i<10; i++){
printf("%d ", sum_arr[i]);
if((i+1)%3 == 0){
printf("\n"); // 每输出3个数换行
}
}