C语言源程序修改过还是有点问题,郁闷。。来个高手帮帮忙
定义一个数组score[11],用以存放学生的成绩,定义一个数组age[11],用以存放学生的年龄。 从键盘输入10个学生成绩和年龄。
采用冒泡法,将学生成绩按照从高到低进行排序;采用选择排序法将学生年龄按从小到大顺序进行排序
再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组
输出最后的学生成绩和学生年龄
这是原题的要求....
#include<stdio.h>
void main()
{
int score[11],age[11];
int i,j,x,y,temp;
printf("请输入10个学生的成绩和年龄:\n");
for(i=0;i<10;i++)
{
printf("请输入第%d个学生的成绩和年龄:",i+1);
scanf("%d%d",&score[i],&age[i]);
}
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(score[i]<score[j])
{
temp=score[i];
score[i]=score[j];
score[j]=temp;
}
if(age[i]>age[j]){
temp=age[i];
age[i]=age[j];
age[j]=temp;
}
}
}
printf("学生成绩从高到低如下:\n");
for(i=0;i<10;i++)
printf("%4d",score[i]);
printf("\n");
printf("学生年龄从小到大如下:\n");
for(i=0;i<10;i++)
printf("%4d",age[i]);
printf("\n");
printf("请输入要插入的学生成绩和年龄:");
scanf("%d%d",&x,&y);
for(i=0;i<10;i++)
{
if(score[i]<x)
{
for(j=10;j>i;j--)
{
score[j]=score[j-1];
}
break;
}
}score[i]=x;
for(i=0;i<10;i++)
{
if(age[i]>y)
{
for(j=10;j>i;j--)
{
score[j]=score[j-1];
}
break;
}
}
age[i]=y;
printf("\n学生成绩从高到低如下:\n");
for(i=0;i<11;i++)
printf("%4d",score[i]);
printf("\n学生年龄从小到大如下:\n");
for(i=0;i<11;i++)
printf("%4d",age[i]);
printf("\n");
}
进入那个黑色界面输入所有数据后最后的年龄显示那里老是有
-858993460出现的,怎么回事??????
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
int score[11],age[11];
int i,j,x,y,temp;
printf("请输入10个学生的成绩和年龄:\n");
for (i=0;i<10;i++)
{
printf("请输入第%d个学生的成绩和年龄:",i+1);
scanf("%d%d",&score[i],&age[i]);
}
for (i=0;i<10;i++)
{
for (j=i+1;j<10;j++)
{
if (score[i]<score[j])
{
temp=score[i];
score[i]=score[j];
score[j]=temp;
}
if (age[i]>age[j])
{
temp=age[i];
age[i]=age[j];
age[j]=temp;
}
}
}
printf("学生成绩从高到低如下:\n");
for (i=0;i<10;i++)
printf("%4d",score[i]);
printf("\n");
printf("学生年龄从小到大如下:\n");
for (i=0;i<10;i++)
printf("%4d",age[i]);
printf("\n");
printf("请输入要插入的学生成绩和年龄:");
scanf("%d%d",&x,&y);
for (i=0;i<10;i++)
{
if (score[i]<x)
{
for (j=10;j>i;j--)
{
score[j]=score[j-1];
}
break;
}
}
score[i]=x;
for (i=0;i<10;i++)
{
if (age[i]>y)
{
for (j=10;j>i;j--)
{
score[j]=score[j-1];
}
break;
}
}
age[i]=y;
printf("\n学生成绩从高到低如下:\n");
for (i=0;i<11;i++)
printf("%4d",score[i]);
printf("\n学生年龄从小到大如下:\n");
for (i=0;i<11;i++)
printf("%4d",age[i]);
printf("\n");
}
int main()
{
int score[11],age[11];
int i,j,x,y,temp;
printf("请输入10个学生的成绩和年龄:\n");
for (i=0;i<10;i++)
{
printf("请输入第%d个学生的成绩和年龄:",i+1);
scanf("%d%d",&score[i],&age[i]);
}
for (i=0;i<10;i++)
{
for (j=i+1;j<10;j++)
{
if (score[i]<score[j])
{
temp=score[i];
score[i]=score[j];
score[j]=temp;
}
if (age[i]>age[j])
{
temp=age[i];
age[i]=age[j];
age[j]=temp;
}
}
}
printf("学生成绩从高到低如下:\n");
for (i=0;i<10;i++)
printf("%4d",score[i]);
printf("\n");
printf("学生年龄从小到大如下:\n");
for (i=0;i<10;i++)
printf("%4d",age[i]);
printf("\n");
printf("请输入要插入的学生成绩和年龄:");
scanf("%d%d",&x,&y);
for (i=0;i<10;i++)
{
if (score[i]<x)
{
for (j=10;j>i;j--)
{
score[j]=score[j-1];
}
break;
}
}
score[i]=x;
for (i=0;i<10;i++)
{
if (age[i]>y)
{
for (j=10;j>i;j--)
{
score[j]=score[j-1];
}
break;
}
}
age[i]=y;
printf("\n学生成绩从高到低如下:\n");
for (i=0;i<11;i++)
printf("%4d",score[i]);
printf("\n学生年龄从小到大如下:\n");
for (i=0;i<11;i++)
printf("%4d",age[i]);
printf("\n");
}
直接看楼主的代码真痛苦。。。。。。。
[color=white]
[[it] 本帖最后由 雨中秣燕 于 2008-4-23 16:29 编辑 [/it]]
----------------解决方案--------------------------------------------------------
这个网里面的教程的代码不都是左对齐的吗?好像很多网也是这种风格写的.
其实我也不知道用哪种好?有什么好的建议?
----------------解决方案--------------------------------------------------------
啊...没本帮我啊!
----------------解决方案--------------------------------------------------------
当然是有缩进的好,教程里面都左对齐是因为网页排版的原因,原本都是有缩进的
----------------解决方案--------------------------------------------------------
这些都是我自己做的,本人菜鸟,找不到修改的方案而以,绝无其他意思...
----------------解决方案--------------------------------------------------------