【c语言】【大一半期复习系列1】小鱼(找最大值及其位置(一维和二维),单向比较,数字逆序输出)

半期考试要到了,报一下佛脚。

以下是一系列小鱼情景题:

1.找鱼王(找出数组中的最大值)

一维数组:

输入:n只小鱼以及它们的质量

输出:最大的那只的质量(即最大值)以及它的位置


#include <stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	int a[n];
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	int max=0;
	int j,q;
	for(int j=0;j<n;j++)
	{
		if(max<a[j])
		{
			max=a[j];//不需要进行交换,直接给!
			q=j+1;//输出鱼王的位置
			
		}
}
		
printf("%d %d",max,q);
return 0;

}

二维二维:

输入:n只小鱼以及它们的质量(以n行n列举例)

输出:最大的那只的质量(即最大值)以及它的位置

//改动不大
#include <stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	int a[n][n];
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
		scanf("%d",&a[i]);
		}
	}
	
	int max=a[0][0];
	int q,p;
	for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
			if(max<a[i][j])
					{
						max=a[i][j];
						q=j+1;
						p=i+1;
					}
			}
		}
		printf("%d %d %d",max,q,p);
		
		
	return 0;
}

2.小鱼比可爱(单向比较)

注:题目摘自洛谷

#include <stdio.h>
int st(int n,int a[])
{
	int b[n],k=0;
	int s=0;//s代表没它可爱的小鱼个数
	for(int i=0;i<n;i++)//每只小鱼都需要进行比较
	{
		for(int j=0;j<i;j++)//正在比较的小鱼的与左边的小鱼依次比较
		{
			if(a[j]<a[i])
			{
				s++;//没它可爱就加一个呗
			}
		}
		b[k]=s;//把得到的结果存在数组里
		k++;
		s=0;
	}
for(int h=0;h<n;h++)
{
	printf("%d ",b[h]);
}
return 0;
}
int main()
{
	int n;
	scanf("%d",&n);
	int a[n];
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	st(n,a);
	return 0;
}

3.数字的逆序输出

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字 (长度不一定,以 0结束),记住了然后反着念出来(表示结束的数字 0 就不要念出来了)。

输入:一行内输入一串整数,以 0结束,以空格间隔。

输出:一行内倒着输出这一串整数,以空格间隔。

#include<stdio.h>
int main()
{
    int a[200],i;
    for(i=0;;i++)
    {
        scanf("%d",&a[i]);// !!知识点:在未知数字个数与大小时,如何让它停下来
        if(a[i]==0)//输入数字 并判断是否结束
            break;
    }
    for(i--;i>=0;i--)//只用i感觉会简单一些 
    {
        printf("%d ",a[i]);
    }

    return 0;
}

4.总结

我感觉把问题放在小鱼身上的话会有趣一些。

写的不好,如果有幸有路过的大佬可以精简一下我的代码的话,将不胜感激,欢迎大家一起讨论。

看到这篇文章的朋友,祝你今天开心!!拜拜

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值