半期考试要到了,报一下佛脚。
以下是一系列小鱼情景题:
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.总结
我感觉把问题放在小鱼身上的话会有趣一些。
写的不好,如果有幸有路过的大佬可以精简一下我的代码的话,将不胜感激,欢迎大家一起讨论。
看到这篇文章的朋友,祝你今天开心!!拜拜