这些题目都很简单,就不做解释了,如果不懂那就没办法了,我会一期一期的更新,难题后面老师给出来我会接着做然后发布。顺带一句,都是自己写的,我没有标准答案,如果算法不好欢迎给我留言,我很喜欢讨论这些的,但有BUG的话,我真的不是故意的,蒙住眼睛惭愧一下。
#include<stdio.h>
int main()
{
int n, m, c, t, i, j;
scanf("%d %d", &n, &m);
t=j=i=0;
while( i<n ){
scanf("%d", &c);
t+=c; i++;
if( t>=m ){
j++;
t=0;
}
}
if( t>0 ) j++;
printf("%d", j);
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
int main()
{
int i, t1, t2, m, k=0;
scanf("%d", &m);
int a[m];
for(i=0; i<m; i++)
scanf("%d", &a[i]);
if(m>2)
{
t1 = a[1]-a[0];
for(i=1; i<m-1; i++)
{
t2 = a[i+1]-a[i];
if( t2>0&&t1>0||t2<0&&t1<0)
{
t1 = t2;
continue;
}
if( t2>0&&t1<0||t2<0&&t1>0)
{
k++;
t1 = t2;
}
}
printf("%d", k);
}
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
int a[1000];
int main(){
int i, j, t, n, u=0, o=0;
scanf("%d", &n);
for( i=0; i<n; i++ )
scanf("%d", &a[i]);
bool flag = false;
for( i=n-1; i>=0; i-- ){
flag = false;
for( j=0; j<i; j++ )
if( a[j]>a[j+1] ){
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
flag = true;
}
if( flag = false ) break;
}
for( i=0; i<n ;i++ ){
if( a[i]<a[n/2] ) u++;
if( a[i]>a[n/2] ) o++;
}
if( u==o )
printf("%d", a[n/2]);
else
printf("-1");
}
--------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
int main()
{
long n, m;
int i, sum=0, t;
scanf("%d", &n);
for(i=0; n>0; i++)
{
t = n%10;
sum += t;
n /= 10;
}
printf("%d", sum);
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
int main()
{
int m, i, j, c=0, n;
scanf("%d", &m);
int a[m];
for(i=0; i<m;i++)
{
scanf("%d", &n);
a[i] = n;
}
for(i=m-1; i>=0; i--)
{
for(j=i; j>=0; j--)
{
if(a[i]==a[j])
c++;
}
a[i] = c;
c=0;
}
for( i=0; i<m; i++ )
printf( "%d ", a[i] );
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
int main()
{
int i, n, c=0, t=0;
scanf("%d", &n);
int a[n];
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
if(i>0)
if(a[i]!=a[i-1])
{
c++;
printf("a[%d] = %d a[%d] = %d %d \n",i, a[i],i-1, a[i-1] ,c);
}
t=1;
}
if(t==1)
c+=1;
printf("%d", c);
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
int a[1000][1000];//这个设定放在外面,不要方int里面。
int main()
{
int i, j, n, m;
scanf("%d %d", &n, &m);
for(i=0; i<n; i++)
for(j=0; j<m; j++)
scanf("%d", &a[i][j]);
for(j=m-1; j>=0; j--){
for(i=0; i<n; i++)
printf("%d ", a[i][j]);
if( j>=1 )
printf("\n");
}
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
int main()
{
int i, j, n, m;
scanf("%d", &n);
int a[n];
for(i=0; i<n; i++)
{
scanf("%d", &m);
if(m<0)
m = (-1)*m;
a[i] = m;
}
m=0;
for(i=n-1; i>=0; i--)
{
for(j=i-1; j>=0; j--)
if(a[i]==a[j])
m++;
}
printf("%d", m);
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>//这道题不难,就是麻烦
int main()
{
int i, j, n, c=0, t=0;
scanf("%d", &n);
int a[n-1], b[n-1];
for(i=0; i<n; i++)
scanf("%d", &a[i]);
for(i=n-1; i>=0; i--) // 10 1 10 20 30 10
{
for( j=i; j>=0; j-- )
{
if(a[j] == a[i])
c++;
}
if(c>1)
t=1;
b[i] = c;
c=0;
}
i=0;
if(t==1) //当有数字次数超过一次的时候进入比较
{
for(j=0; j<n; j++)
if( b[i]<b[j] )
i=j;
for(j=0; j<n; j++) //检测是否有重复相同次数的数字,比较它们的大小
{
if(b[i]==b[j])
if(a[i]>a[j])
a[i] = a[j];
}
printf("%d ", a[i]);
}
else//当没有重复的数字,直接比较就行了
{
i=0;
for(j=0; j<n; j++)
if(a[i]>a[j])
i=j;
printf("%d ", a[i]);
}
return 0;
}
——————————————————————————————————————————————————————
最大波动
201609-1
问题描述
小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。
输入格式
输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。
第二行包含n个正整数,依次表示每天的收盘价格。
输出格式
输出一个整数,表示这只股票这n天中的最大波动值。
样例输入
6
2 5 5 7 3 5
样例输出
4
样例说明
第四天和第五天之间的波动最大,波动值为|3-7|=4。
评测用例规模与约定
对于所有评测用例,2 ≤ n ≤ 1000。股票每一天的价格为1到10000之间的整数。
#include<stdio.h>
#include<math.h>
int main()
{
int i, n, t1, t2;
scanf("%d", &n);
int a[n];
for( i=0; i<n; i++ )
scanf("%d", &a[i]);
t1 = abs(a[1]-a[0]);
if( n>2 )
for( i=1; i<n-1; i++ ){
t2 = abs(a[i+1]-a[i]);
if( t2>t1 )
t1 = t2;
}
printf("%d", t1);
return 0;
}