4.1习题
1、输入10个整数,然后将这10个整数逆序输出。
#include<stdio.h>
int main()
{
int i;
int a[10];
printf("Input data: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("Output data: ");
for(i=9;i>=0;i--) //通过下标引用顺序实现逆序
printf("%d ",a[i]);
return 0;
}
2、输入一个整数m,然后输入m个整数,存放在数组a中;再输入一个整数n,然后输入n个整数,存放在数组b中。出a和b两数组的非共有元素,存放在数组c中并输出。(m和n的值不超过20)
#include<stdio.h>
int main()
{
int a[20], b[20], c[20];//假定元素值不超过20
int m, n, i, j, k=0;
scanf("%d", &m);
for(i=0; i<m; i++)
scanf("%d", &a[i]);
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &b[i]);
for(i=0; i<m; i++)//出数组a中不是共同元素的值
{
for(j=0; j<n; j++)
{
if(a[i]==b[j])
break;
}
if(j>=n)//不是共同元素
{
c[k]=a[i];
k++;//为存放下一个元素做准备
}
}
for(i=0; i<n; i++)//出数组b中不是共同元素的值
{
for(j=0; j<m; j++)
{
if(b[i]==a[j])
break;
}
if(j>=m)
{
c[k]=b[i];
k++;
}
}
for(i=0; i<k; i++)
printf(" %d", c[i]);
printf(“\n”);
return 0;
}
3、输入N个整数(N定义为常量),将最小值与第一个数交换,最大值与最后一个数交换。
#include <stdio.h>
#define N 10
int main()
{
int i,min,max,temp;
int a[N];
for (i = 0; i < N; i++)
scanf("%d",&a[i]);
min = 0;
max = 0;
for (i = 0; i < N; i++)
{
if ( a[i] < a[min] )
min=i ;
if(a[i]>a[max])
max=i ;
}
temp = a[0];
a[0] = a[min];
a[min] = temp;
temp = a[N-1];
a[N-1] = a[max];
a[max] = temp;
printf("After swapped:");
for(i=0; i<N; i++)
printf("%4d ", a[i]);
return 0;
}
4、输入一个整数序列,遇到0结束。统计并输出序列中出现次数最多的整数及其出现次数。
#include <stdio.h>
int main()
{
int a[1000];
int count=0;
int max = 0, maxcount = 0;
int i,j;
printf(“Input integers:\n”);
for (i = 0; i < 1000; i++)
{
scanf("%d", &a[i]);
if(a[i]==0) break;
for (j = 0; j < i+1; j++)
{
if (a[i] == a[j])
{
count++;
}
}
if (count > maxcount)
{
maxcount = count;
max = a[i];
}
count = 0;
}
printf("出现次数最多的数是%d,共出现scanf输入整型数组%d次\n", max, maxcount);
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论