第一题:
#include <stdio.h>
int main()
{
int i,n;
int a[100];
int max,maxindex;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(i==0)
{
max = a[0];
maxindex = 0;
}else
{
if(a[i]>max)
{
max = a[i];
maxindex = i;
}
}
}
printf("最大值:%d,下标:%d",max,maxindex);
return 0;
}
第二题:
代码:
#include <stdio.h>
//冒泡排序
void bubble_sort(int a[],int n)
{
int i,j,t;
for (i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
{
if(a[j] > a[j+1]) //从小到大,升序
{
t = a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
int main()
{
int i,n;
int a[100];
int cnt=1,maxcnt=0,ele;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
bubble_sort(a,n);
ele = a[0];
for (i=1;i<n;i++)
{
if (a[i] == a[i-1])
{
cnt++;
}else
{
if(cnt > maxcnt)
{
maxcnt = cnt;
ele = a[i-1];
}
cnt = 1;
}
}
if(cnt > maxcnt)
{
maxcnt = cnt;
ele = a[i-1];
}
printf("出现次数最多的数是:%d",ele);
return 0;
}
第三题:
#include <stdio.h>
//冒泡排序
void bubble_sort(int a[],int n)
{
int i,j,t;
for (i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
{
if(a[j] > a[j+1]) //从小到大,升序
{
t = a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
int main()
{
int i,j,n,m;
int a[100];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
bubble_sort(a,n);
//显示
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
printf("请输入要删除的数:");
scanf("%d",&m);
for (i=0;i<n;i++)
{
//只删除遇到的第1个
if(a[i] == m)
{
for(j=i;j<n-1;j++)
a[j]=a[j+1];
break;
}
}
n--;
//显示
printf("删除%d后:",m);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
#include "stdio.h"
void main()
{
int a[100];
int n;
int i;
int max=0,index=-1;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
if(max<a[i]){
max =a[i];
index = i;
}
}
printf("max=%d,下标:%d",max,index);
}
1、循环比较的时候,记录最大值的下标就可以了
2、定义一个大小为101的数组,在输入n个数的同时统计每个数的出现次数,最后比较这个数组中的最大值就是出现最多次数的数
3、冒泡排序,找到删除元素位置后,将后面元素全部向前移动一个位置
#include<stdio.h>
int main() {
int n,i,max,maxi;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
a[0]=max;maxi=0;
for(i=0;i<n;i++){
if(a[i]>max){
max=a[i];
maxi=i;
}
}
printf("%d %d",max,maxi);
return 0;
}
#include<stdio.h>
int main() {
int n,i,max,maxi;
scanf("%d",&n);
int a[n],b[101]={0};
for(i=0;i<n;i++){
scanf("%d",&a[i]);
b[a[i]]++;
}
max=b[0];maxi=0;
for(i=1;i<=100;i++){
if(b[i]>max){
max=b[i];
maxi=i;
}
}
printf("%d",maxi);
return 0;
}
#include<stdio.h>
int main() {
int n, i,j,t,x;
scanf("%d", &n);
int a[n];
for(i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for(i = 0; i < n - 1; i++) {
for(j = 0; j < n - 1 - i; j++) {
if(a[j] > a[j + 1]) {
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
printf("排序后:");
for(i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n输入待删除的数:");
scanf("%d", &x);
int index = -1;
for(i = 0; i < n; i++) {
if(a[i] == x) {
index = i;
break;
}
}
if(index == -1) {
printf("未找到");
} else {
for(i = index + 1; i < n; i++) {
a[i - 1] = a[i];
}
printf("删除后:");
for(i = 0; i < n-1; i++) {
printf("%d ", a[i]);
}
}
return 0;
}