鱼C论坛

 找回密码
 立即注册
查看: 2433|回复: 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]);
    }
}
结果错误,大神求解。

最佳答案

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

  13.         for( i = n-1; i > m; i-- )
  14.         {
  15.                 cj[i+1] = cj[i];
  16.         }
  17.         cj[i] = a;
  18. /*
  19.         for (i = m; i < n + 1;i++)
  20.         {
  21.                 cj[i] = cj[i+1];
  22.         }a = cj[2];

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

  29.         return 0;
  30. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-7 12:42:11 | 显示全部楼层
比如说:
请输入第一个学生的成绩:1
请输入第二个学生的成绩:2
请输入第三个学生的成绩:3
请输入第四个学生的成绩:4
请输入第五个学生的成绩:5
请输入第六个学生的成绩:6
9
插入后学生成绩为:
第一个学生的成绩:1
第二个学生的成绩:2
第三个学生的成绩:9
第四个学生的成绩:3
第五个学生的成绩:4
第六个学生的成绩:5
第七个学生的成绩:6
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-7 13:34:39 | 显示全部楼层
感谢这位有爱的朋友,支持甲鱼~!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  2. int main()
  3. {
  4.         int cj[10];
  5.         int i,j;
  6.         for(i = 0;i<6;i++)
  7.         {
  8.                 cj[i] = i;
  9.         }
  10.        
  11.         printf("Please Input a number as integer:");
  12.         scanf("%d",&j);
  13.         for(i = 4;i<7;i++)
  14.         {
  15.                 cj[i] = cj[i-1];
  16.         }
  17.         cj[3] = j;
  18.         for(i = 0;i<7;i++)
  19.         {
  20.                 printf("%d\n",cj[i]);
  21.         }
  22.         return 0;
  23. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-5-7 21:14:12 | 显示全部楼层
支持楼上!{:2_27:}
小甲鱼最新课程 -> https://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]);
       
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-21 15:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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