c语言数组基础训练10道题
时间: 2023-11-24 10:50:08 浏览: 112
以下是10道C语言数组基础训练题:
1.输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换,输出数组。
```c
#include <stdio.h>
int main()
{
int a[10],max,min,max_i,min_i,temp;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
max=min=a[0];
max_i=min_i=0;
for(int i=1;i<10;i++){
if(a[i]>max){
max=a[i];
max_i=i;
}
if(a[i]<min){
min=a[i];
min_i=i;
}
}
temp=a[0];
a[0]=min;
a[min_i]=temp;
temp=a[9];
a[9]=max;
a[max_i]=temp;
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
```
2.输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换,然后输出数组。
```c
#include <stdio.h>
int main()
{
int a[10],max,min,max_i,min_i,temp;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
max=min=a[0];
max_i=min_i=0;
for(int i=1;i<10;i++){
if(a[i]>max){
max=a[i];
max_i=i;
}
if(a[i]<min){
min=a[i];
min_i=i;
}
}
temp=a[0];
a[0]=min;
a[min_i]=temp;
temp=a[9];
a[9]=max;
a[max_i]=temp;
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
```
3.输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换,然后按照从小到大的顺序输出数组。
```c
#include <stdio.h>
int main()
{
int a[10],max,min,max_i,min_i,temp;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
max=min=a[0];
max_i=min_i=0;
for(int i=1;i<10;i++){
if(a[i]>max){
max=a[i];
max_i=i;
}
if(a[i]<min){
min=a[i];
min_i=i;
}
}
temp=a[0];
a[0]=min;
a[min_i]=temp;
temp=a[9];
a[9]=max;
a[max_i]=temp;
for(int i=0;i<10;i++){
for(int j=i+1;j<10;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
```
4.输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换,然后按照从大到小的顺序输出数组。
```c
#include <stdio.h>
int main()
{
int a[10],max,min,max_i,min_i,temp;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
max=min=a[0];
max_i=min_i=0;
for(int i=1;i<10;i++){
if(a[i]>max){
max=a[i];
max_i=i;
}
if(a[i]<min){
min=a[i];
min_i=i;
}
}
temp=a[0];
a[0]=min;
a[min_i]=temp;
temp=a[9];
a[9]=max;
a[max_i]=temp;
for(int i=0;i<10;i++){
for(int j=i+1;j<10;j++){
if(a[i]<a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
```
5.输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换,然后将数组中的奇数放在前半部分,偶数放在后半部分,输出数组。
```c
#include <stdio.h>
int main()
{
int a[10],max,min,max_i,min_i,temp;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
max=min=a[0];
max_i=min_i=0;
for(int i=1;i<10;i++){
if(a[i]>max){
max=a[i];
max_i=i;
}
if(a[i]<min){
min=a[i];
min_i=i;
}
}
temp=a[0];
a[0]=min;
a[min_i]=temp;
temp=a[9];
a[9]=max;
a[max_i]=temp;
int i=0,j=9;
while(i<j){
while(i<j&&a[i]%2==1){
i++;
}
while(i<j&&a[j]%2==0){
j--;
}
if(i<j){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
```
6.输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换,然后将数组中的奇数放在前半部分,偶数放在后半部分,然后按照从小到大的顺序输出数组。
```c
#include <stdio.h>
int main()
{
int a[10],max,min,max_i,min_i,temp;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
max=min=a[0];
max_i=min_i=0;
for(int i=1;i<10;i++){
if(a[i]>max){
max=a[i];
max_i=i;
}
if(a[i]<min){
min=a[i];
min_i=i;
}
}
temp=a[0];
a[0]=min;
a[min_i]=temp;
temp=a[9];
a[9]=max;
a[max_i]=temp;
int i=0,j=9;
while(i<j){
while(i<j&&a[i]%2==1){
i++;
}
while(i<j&&a[j]%2==0){
j--;
}
if(i<j){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(int i=0;i<10;i++){
for(int j=i+1;j<10;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
```
7.输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换,然后将数组中的奇数放在前半部分,偶数放在后半部分,然后按照从大到小的顺序输出数组。
```c
#include <stdio.h>
int main()
{
int a[10],max,min,max_i,min_i,temp;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
max=min=a[0];
max_i=min_i=0;
for(int i=1;i<10;i++){
if(a[i]>max){
max=a[i];
max_i=i;
}
if(a[i]<min){
min=a[i];
min_i=i;
}
}
temp=a[0];
a[0]=min;
a[min_i]=temp;
temp=a[9];
a[9]=max;
a[max_i]=temp;
int i=0,j=9;
while(i<j){
while(i<j&&a[i]%2==1){
i++;
}
while(i<j&&a[j]%2==0){
j--;
}
if(i<j){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(int i=0;i<10;i++){
for(int j=i+1;j<10;j++){
if(a[i]<a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
```
8.输入一个字符串,统计其中各个字符出现
阅读全文