首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

如何同时输入字符串和数字

2013-12-29 
怎么同时输入字符串和数字本帖最后由 u012495008 于 2013-12-28 09:47:33 编辑我在弄一个学生成绩管理系统

怎么同时输入字符串和数字
本帖最后由 u012495008 于 2013-12-28 09:47:33 编辑 我在弄一个学生成绩管理系统,用一个函数怎么同时输入学生名字数组和成绩数组,新手求大神解。。。拜托
[解决办法]
分两个数组,分别读入,然后后续合并做处理就可以,或者读取一行的方法读入,都可以。
[解决办法]
C++可以operator >>重载
[解决办法]
函数设置一个标记位Flag,表示该输入数据类型(学生名字数组和成绩数组),这样公用了一个接口。例如Flag = 1
为学生名字,Flag = 2为学生成绩  不知道这是不是你想要的。
[解决办法]

引用:
Quote: 引用:

分两个数组,分别读入,然后后续合并做处理就可以,或者读取一行的方法读入,都可以。
后续合并处理的时候老是出问题,如果输入字符串用getchar(),成绩用scanf输入的话可不可行呢?都用scanf也不行。。。


参考如下代码的输入:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
typedef struct _bookinfo
{
    char  name[60];
    float price;
}bookinfo;
 
 
int main()
{
      int nbookCount = -1;
      int maxpriceindex = 0;
      float maxprice = 0.0;
      bookinfo *pBooklist = NULL;
    printf("please intput the number of books:\n");
    scanf("%d", &nbookCount);
     
    if(nbookCount <= 0)
    {
        printf("error books count!\n");
        exit(-1);
    }
     
    pBooklist = (bookinfo *)malloc(nbookCount * sizeof(bookinfo));
    if(pBooklist == NULL)
    {
        printf("malloc memory failed!!\n");
        exit(-1);
    }
     
    int i;
    for(i=0; i<nbookCount; i++)
    {
        printf("please intput the %dth book name:\n", i+1);
        scanf("%s", pBooklist[i].name);
         
        printf("please intput the %dth book price:\n", i+1);
        scanf("%f", &pBooklist[i].price);
        if(maxprice < pBooklist[i].price)
        {
            maxprice = pBooklist[i].price;
            maxpriceindex = i;
        }
        printf("\n\n----------------------------------------------------\n", i+1);
    }
     
    printf("The most dear book is:[%s]. The price is:[%f]\n", pBooklist[maxpriceindex].name, pBooklist[maxpriceindex].price);
     
    free(pBooklist);
}

热点排行