C语言题目 产生学号

如题所述

#include<stdio.h>
#include<math.h>
void print(int d,int b)
{
    for(int i=bits-1;i>=0;i--)
    {
        printf("%d",d/((int)pow(10,i)));
        d=d%((int)pow(10,i));
    }
}
int main()
{
    int year,clas,num;
    char coll,dir;        //coll代表学院college,dir代表direction专业(方向) 
    scanf("%d",&year);     //输入年份    
    getchar();            //此处接收年与学院之间的空格 
    coll=getchar();        //学院 
    getchar();
    dir=getchar();
    scanf("%d",&clas);
    scanf("%d",&num);
    for(int i=1;i!=num+1;i++)
    {
        print(year,4);
        print(coll-64,2);//coll-64并在传递参数的时候强制转换为int型,A代表1; 
        print(dir-64,2);
        print(clas,2);
        print(i,2);
        printf("\n");
    }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-13
scanf函数从键盘获取输入的数据,然后按照定长截取各个单项,把最后的班级人数截获后,转为int类型n,由1开始计数循环<=n次,组成指定的格式输出即可。
你可以定义一个结构体变量,每循环一次,把这个struct格式成指定的字符串输出就可以了。
sprintf(szBuf,"%.4s%.2s%.2s%.2s%2d", class,a,b,n);
相似回答