鱼C论坛

 找回密码
 立即注册
查看: 2121|回复: 6

用数组输入6个学生的成绩,再在第三个的位置插入一新成绩,依次输出7个成绩

[复制链接]
发表于 2014-5-7 12:38:23 | 显示全部楼层 |阅读模式
1鱼币
/***********************************
*插入一个数据,然后其他数据依后赋值*
***********************************/
#include<stdio.h>
void main()
{
   float a, cj[10];
    int i, n = 6, m = 3;
       for(i = 0;i <n;i++)
    {
     printf("请输入第%d个学生的成绩:",i+1);
     scanf("%f",&cj[i]);
    }
    n = n+1;
    scanf("%f",&cj[m-1]);
    for (i = m; i < n + 1;i++)
    {
     cj[i] = cj[i+1];
    }a = cj[2];
    printf("插入后的学生成绩为:\n");
    for(i = 0; i < n; i++)
    {
    printf("第%d个学生的成绩为:%.1f\n", i+1, cj[i]);
    }
}
结果错误,大神求解。

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-7 12:38:24 | 显示全部楼层
#include<stdio.h>
int main( void )
{
    float a, cj[10];
        int i, n = 6, m = 3;

        for(i = 0; i < n; i++ )
        {
                printf("请输入第%d个学生的成绩:",i+1);
                scanf("%f",&cj[i]);
        }
        printf("请输入插入位置和成绩 : ");
        scanf("%d%f", &m, &a );

        for( i = n-1; i > m; i-- )
        {
                cj[i+1] = cj[i];
        }
        cj[i] = a;
/*
        for (i = m; i < n + 1;i++)
        {
                cj[i] = cj[i+1];
        }a = cj[2];

        printf("插入后的学生成绩为:\n");
                */
        for(i = 0; i <= n; i++)
        {
                printf("第%d个学生的成绩为:%.1f\n", i+1, cj[i]);
        }

        return 0;
} 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-7 12:42:11 | 显示全部楼层
比如说:
请输入第一个学生的成绩:1
请输入第二个学生的成绩:2
请输入第三个学生的成绩:3
请输入第四个学生的成绩:4
请输入第五个学生的成绩:5
请输入第六个学生的成绩:6
9
插入后学生成绩为:
第一个学生的成绩:1
第二个学生的成绩:2
第三个学生的成绩:9
第四个学生的成绩:3
第五个学生的成绩:4
第六个学生的成绩:5
第七个学生的成绩:6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-7 13:34:39 | 显示全部楼层
感谢这位有爱的朋友,支持甲鱼~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-7 15:47:22 | 显示全部楼层
#include<stdio.h>

int main()
{
        int cj[10];
        int i,j;
        for(i = 0;i<6;i++)
        {
                cj[i] = i;
        }
        
        printf("Please Input a number as integer:");
        scanf("%d",&j);
        for(i = 4;i<7;i++)
        {
                cj[i] = cj[i-1];
        }
        cj[3] = j;
        for(i = 0;i<7;i++)
        {
                printf("%d\n",cj[i]);
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-7 21:14:12 | 显示全部楼层
支持楼上!{:2_27:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-9 19:14:33 | 显示全部楼层
//用数组输入六个学生的成绩,再在第三个位置插入一个新成绩
我改了一下,你看看
#include<stdio.h>
void main()
{
        float a, cj[10];
    int i, n = 6, m = 3 , j;
        float s ;
        for(i = 0;i <n;i++)
    {
                printf("请输入第%d个学生的成绩:",i+1);
                scanf("%f",&cj[i]);
    }
    n = n+1;
    /*scanf("%f",&cj[m-1]);//cj[m-1]也就是cj[2]你上边已经给cj[2]赋值了
    for (i = m; i < n + 1;i++)
    {
        cj[i] = cj[i+1];
    }a = cj[2];
    printf("插入后的学生成绩为:\n");
    for(i = 0; i < n; i++)
    {
    printf("第%d个学生的成绩为:%.1f\n", i+1, cj[i]);
}*/
        printf("请输入要插入的新成绩:\n");
        scanf("%f" , &s);
        for(j = 6 ; j > 2 ; j --)
                cj[j] = cj[j -1];
        cj[2] = s ;
        for(i = 0 ; i < n ; i ++)
                printf("%f\n" , cj[i]);
       
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 07:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表