C语言 怎么产生学号

如题所述

#include<stdio.h>
#include<math.h>
void print(int d,int bits);
int main()
{
    int year,clas,num;//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");
    }
}
/*
*将传递的数字,按照位数显示,比如传递print(12,5):标示将1按照5位输出,00012;
*/ 
void print(int d,int bits)
{
    for(int i=bits-1;i>=0;i--)
    {
        printf("%d",d/((int)pow(10,i)));
        d=d%((int)pow(10,i));
    }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-13
//有问题请追问
#include <stdio.h>
int grade, school_id, major_id, class_id, sum;
int main(void)
{
 int i;
 scanf("%d %c %c %d %d", &grade, &school_id, &major_id, &class_id, &sum);
 
 for(i = 1; i <= sum; i++)
  printf("%d%d%d%02d%02d\n", grade, school_id - 'A' + 1, major_id - 'A' + 1, class_id, i);
 
 return 0;//Your program should return 0 on normal termination.
}

相似回答