最好快点!!C语言 数组题目

我是菜鸟,有几个题目想请教一下各位大虾们
(1)从键盘输入10个学生成绩储存在数组中,求成绩最高者的序号和成绩;
(2)将两个按升序排列的数列仍按升序合并存放到另一数组中,要求每个数都一次到位,不得在新数组中重新排序;
(3)数组a中存放十个四位十进制整数,统计千位和十位之和与百位和个位之和相等的数据个数,并将满足条件的数据存入数组b中
@全回答还会加财富值的 !!!谢谢!!最好快点
忘了说要干什么了 写程序啊(汗!!不说也知道)

1=================
#include <stdio.h>
void main()
{
float score[10];
int i, n = 10, max;
for(i = 0; i < n; i++)
scanf("%f", &score[i]);
for(max = 0, i = 1; i < n; i++)
{
if(score[max] < score[i]) max = i;
}
printf("\n%d, %.2f\n", max, score[max]);
}
2==================
#include <stdio.h>
void main()
{
int a[10] = {1,2,5,8,21,33,35,45,68,69};
int b[10] = {4,6,9,11,21,34,38,49,60,79};
int c[20];
int i, j, n = 10;
int d, e;
for(i = 0; i < n; i++)
c[i] = a[i];
d = 0; e = n;
for(i = 0; i < n; i++)
{
for(j = d; j < e; j++) //寻找插入点
{
if(b[i] <= c[j]) { break; }
}
if( j == e ) //若插入点在最后则直接衔接
{
for(; j < 20; j++)
c[j] = b[i++];
break;
}
else
{
d = j + 1;
for(j = e; j >= d; j--) //c组后移
c[j] = c[j-1];
c[j] = b[i]; //插入数
e = e + 1;
}
}
for(i = 0; i < 20; i++)
printf("%d ", c[i]);
}
3==================
#include <stdio.h>
void main()
{
int a[10], b[10];
int i, j, n = 10;
int c, d, e, f;
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
for(i = 0, j = 0; i < n; i++)
{
c = a[i] / 1000;
d = a[i] / 100 % 10;
e = a[i] % 100 / 10;
f = a[i] % 10;
if( c + e == d + f ) { b[j++] = a[i]; }
}
for(i = 0; i < j; i++)
printf("%d ", b[i]);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-20
1.
//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int a[10],i,ma;
for (i = 0; i < 10; i++) {
scanf("%d",&a[i]);
if (!i) ma=0;
else if (a[ma]<a[i]) ma=i;
}
printf("%d号同学成绩最高,得分为%d\n",ma+1,a[ma]);
return 0;
}
//---------------------------------------------------------------------------

2.
//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int a[5]={1,3,5,7,9};
int b[5]={2,4,6,8,10};
int c[10],i=0,j=0,k=0;
while (i<5&&j<5) /*利用归并排序算法对a和b数组进行合并,将结果保存到c数组中*/
if (a[i]<b[j]) {
c[k++]=a[i++];
}
else {
c[k++]=b[j++];
}
while (i<5)
c[k++]=a[i++];
while (j<5)
c[k++]=b[j++];

for (i = 0; i < 10; i++) { /*输出c数组元素*/
printf("%d ",c[i]);
}
return 0;
}
//---------------------------------------------------------------------------

3.
//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int a[10],b[10];
int i,j;
srand(time(NULL)); /*初始化随机数种子*/
for (j=i = 0; i < 10; i++) {
a[i]=rand()%9000+1000; /*利用随机数生成10个四们整数*/
printf("%d ",a[i]); /*输出这10个四位整数*/
if (a[i]/1000+a[i]/10%10==a[i]%10+a[i]/100%10) b[j++]=a[i];/*将符合要求的数字保存到b数组*/
}
putchar('\n');
for (i = 0; i<j; i++) { /*输出保存在b数组中的符合条件的整数*/
printf("%d\n",b[i]);
}
return 0;
}
//---------------------------------------------------------------------------
第2个回答  2010-06-20
1。#include <stdlib.h>
#include <stdio.h>
int main()
{
int a[10],i,max=0,m;
printf("输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(max<a[i])
{
max=a[i];
m=i+1;
}
printf("最高分为:%d\n第%d位 ",max,m);
system("pause");
}

2。
#include <stdlib.h>
#include <stdio.h>
int main()
{
int a[5]={1,3,4,6,7},b[5]={0,2,5,8,9},c[10]={0},i,j,n=0;
for(i=0,j=0;n<10;)
if(a[i]<b[j])
{
c[n]=a[i];
i++;
n++;
}
else
{
c[n]=b[j];
j++;
n++;
}
printf("排序后:\n");
for(i=0;i<10;i++)
printf("%d ",c[i]);
system("pause");
}

3。
#include <stdlib.h>
#include <stdio.h>
int sum(int x)
{
int sum=0;
int i;
for(i=0;x>0;i++)
{
sum+=(x%10);
x/=10;
}
return sum;
}
int main()
{
int a[10]={1234,1325,6543,7654,4456,9876,4325,7546,5679,2456},b[10]={0},s[10]={0};
int i,j,n=0;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{
if(sum(a[i])==sum(a[j]))
{
if(s[i]==0)
{
b[n]=a[i];
n++;
s[i]=1;
}
if(s[j]==0)
{
b[n]=a[j];
n++;
s[j]=1;
}
}
}
printf("符合数据的数:");
for(i=0;i<n;i++)
{
printf("%d ",b[i]);
}
printf("\n");
printf("一共有%d个",n);
system("pause");
}
第3个回答  2019-09-26
1.
//---------------------------------------------------------------------------
#include
<stdio.h>
int
main(void)
{
int
a[10],i,ma;
for
(i
=
0;
i
<
10;
i++)
{
scanf("%d",&a[i]);
if
(!i)
ma=0;
else
if
(a[ma]<a[i])
ma=i;
}
printf("%d号同学成绩最高,得分为%d\n",ma+1,a[ma]);
return
0;
}
//---------------------------------------------------------------------------
2.
//---------------------------------------------------------------------------
#include
<stdio.h>
int
main(void)
{
int
a[5]={1,3,5,7,9};
int
b[5]={2,4,6,8,10};
int
c[10],i=0,j=0,k=0;
while
(i<5&&j<5)
/*利用归并排序算法对a和b数组进行合并,将结果保存到c数组中*/
if
(a[i]<b[j])
{
c[k++]=a[i++];
}
else
{
c[k++]=b[j++];
}
while
(i<5)
c[k++]=a[i++];
while
(j<5)
c[k++]=b[j++];
for
(i
=
0;
i
<
10;
i++)
{
/*输出c数组元素*/
printf("%d
",c[i]);
}
return
0;
}
//---------------------------------------------------------------------------
3.
//---------------------------------------------------------------------------
#include
<stdio.h>
#include
<stdlib.h>
#include
<time.h>
int
main(void)
{
int
a[10],b[10];
int
i,j;
srand(time(NULL));
/*初始化随机数种子*/
for
(j=i
=
0;
i
<
10;
i++)
{
a[i]=rand()%9000+1000;
/*利用随机数生成10个四们整数*/
printf("%d
",a[i]);
/*输出这10个四位整数*/
if
(a[i]/1000+a[i]/10%10==a[i]%10+a[i]/100%10)
b[j++]=a[i];/*将符合要求的数字保存到b数组*/
}
putchar('\n');
for
(i
=
0;
i<j;
i++)
{
/*输出保存在b数组中的符合条件的整数*/
printf("%d\n",b[i]);
}
return
0;
}
//---------------------------------------------------------------------------
相似回答