C语言输入输出经典题

来源:互联网 发布:淘宝越来越难做了 编辑:程序博客网 时间:2024/05/22 13:41
/*MP3的基本歌曲信息存在了MP3文件的最后128个字节里其结构是: 1-3 TAG 标签) 4-33 歌曲名(Take Me To Your Heart ) 34-63 歌手名(Michael Learns to Rock) 64-93 专辑名(Take Me to Your Heart) 94-97 年份(2004) 98-125 备注() 126 保留位,这时为0,则说明有音轨,下一位就是音轨 127 保留位,为音轨(第几首歌)(OC) 128    保留位 (风格)(66) */#include<stdio.h>#include<stdlib.h>struct  MUSIC_TITAL_INFO{ char ID3v1TAG[3];  //TAG char MUSIC_NAME[30]; //存储标题信息 char Artist[30];   //存储歌手信息 char Album[30];   //存储专辑信息 char YEAR[4];   //存储年代信息 char Comments[28];  //存储备注信息,28个字节(有时为30字节) char Genre;    //存储音乐风格信息,保留位,1个字节 char Reserved;   //保留位,1个字节(有时没有意思 char Track;    //音轨(曲号)保留位,1个字节(有时没有)}m;void main(){ FILE *fp; if((fp=fopen("E:\\一生所爱.mp3","r"))==NULL) {  printf("打开文件失败!/n");  exit(0); } if(!fseek(fp,-128,SEEK_END)) {  fread(&m,sizeof(struct MUSIC_TITAL_INFO),1,fp);  printf("TAG: %.s\nName: %30s\nArtist: %30s\nAlbum: %30s\nYear: %4s\nComment: %28s\nGenre: %c\nReserved: %c\nTrack: %c\n",m.ID3v1TAG,m.MUSIC_NAME,m.Artist,m.YEAR,m.Album,m.Comments,m.Genre,m.Reserved,m.Track); } else {  printf("读取失败!/n"); }}2
/*在十个数字0,1,2,3,4,5,6,7,8,9文曲星会随机产生2个数让你来猜 你最多只有6次机会例如 文曲星 随即产生 12这2个排列好的2位数字然后 猜数第一次 输入 01 那么 文曲星会返回 0A1B (xAxB A代表你猜中了多少个数字并且位置也是正确的,B代表你猜中了多少个数字但是位置是错误的),然后根据0A1B这个信息 继续猜 直到猜对为止(即2A0B).就这样,每次输入2个数字 文曲星都会返回 xAxB 但最多只能猜6次
*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int random[2];int A=0;int B=0;void  P_rand(){ int number_1 = 0; int number_2 = 0; srand((unsigned)time(NULL)); while(1) {  number_1 = rand()%10;  number_2 = rand()%10;  if(number_1 != number_2)  {   random[0] = number_1;   random[1] = number_2;   break;  } }}void main(){  P_rand(); printf("输入您猜的两位数,以,隔开\n"); for(int i=0;i<6;i++){  int Guess_num_1 = 0;  int Guess_num_2 = 0;  A=0;  B=0;  scanf("%d,%d",&Guess_num_1,&Guess_num_2);  if(Guess_num_1 == random[0])  {   A++;  }  if(Guess_num_2 == random[1])  {   A++;   }  if(Guess_num_1 == random[1])  {   B++;   }  if(Guess_num_2 == random[0])  {   B++;  }  if(A == 2 && B == 0)  {   printf("2A0B,恭喜您!猜对了!!");  break;  }else   {  printf("%dA%dB,对不起不正确\n",A,B);  } }}3#include<stdio.h>#include<stdlib.h>/*例如输入当前时间2006年12月20日19时17分59秒,计算后输出时间是2006年12月20日19时18分00秒。程序要求:程序应该可以运行:通过控制台输入数据,输出数据通过printf给出;程序结构明了、逻辑清晰;请考虑闰年、月份(大小)等逻辑;程序功能完整;*/struct DATE{ int year; int month; int day; int hour; int minute; int secs;}date1,date2; int _year; int _month; int _day; int _hour; int _minute; int _secs;void main(){ struct DATE outPut(struct DATE date); printf("请输入当前一个日期:\n"); scanf("%d年%d月%d日%d时%d分%d秒",&_year,&_month,&_day,&_hour,&_minute,&_secs); date1.year = _year; date1.month = _month; date1.day = _day; date1.hour = _hour; date1.minute = _minute; date1.secs = _secs; date2=outPut(date1); printf("%d年%d月%d日%d时%d分%d秒\n",date2.year,date2.month,date2.day,date2.hour,date2.minute,date2.secs); fflush(stdin);}int IS_Leap_Year(struct DATE date){ if((date.year%4==0&&date.year%100!=0)||date.year%400==0){  return 1; }else{  return 0; }}struct DATE outPut(struct DATE date){  int IS_Leap_Year(struct DATE date); int is_Leap_Year=IS_Leap_Year(date); if(date.secs == 59) {  date.secs=0;  date.minute++;  if(date.minute == 60)  {   date.minute=0;   date.hour++;   if(date.hour==24)   {    if(1 == date.month||3 == date.month||5 == date.month||7 == date.month||8 == date.month||10 == date.month)    {     if(31 == date.day)     {      date.day = 1;      date.month++;      date.hour=0;     }    }else if(4 == date.month||6 == date.month||9 == date.month||11 == date.month)    {     if(30 == date.day)     {      date.day=1;      date.month++;      date.hour=0;     }    }else if(2 == date.month)    {     if(1 == is_Leap_Year)     {      if(29 == date.day)      {      date.day=1;      date.month++;      date.hour=0;      }     }else if(0 == is_Leap_Year)     {       if(28 == date.day)      {      date.day=1;      date.month++;      date.hour=0;      }     }    }else if(12 == date.month)    {     if(31 == date.day)     {      date.day=1;      date.month=1;      date.year++;      date.hour=0;     }    }   }  } }else  { date.secs++; } return date;} 4  /*•例如输入当前时间2006年12月20日19时17分59秒,计算后输出时间是2006年12月20日19时18分00秒。 •程序要求: •程序应该可以运行:通过控制台输入数据,输出数据通过printf给出; •程序结构明了、逻辑清晰; •请考虑闰年、月份(大小)等逻辑; •程序功能完整; */#include<stdio.h>#include<stdlib.h>struct Array{ int a; char b;} array;int num[200];FILE *fb;FILE *fb2;void main(){ float avg_sum_array=0; int sum_array=0;//奇数之和 int sum = 0;//各位数的和 int unit = 0;//个位数 int ten = 0;//十位数 int hundred = 0;//百位数 int thousand = 0;//千位数 int i = 0;//数组下标 int count = 0;//计算是奇数的个数 if((fb = fopen("C:\\Source.txt","r")) == NULL) {  printf("文件打开未成功!输入任意键推出程序!");  getchar();  exit(1); }else { while(!feof(fb))  {       fscanf(fb,"%d%c",&array.a,&array.b);   num[i]=array.a;   i++;  } } for(int j = 0;j<i;j++)  {   printf("%d\n",num[j]);  } printf("一共有%d个正整数!!\n",i); for(int k = 0;k<i;k++) {  unit = num[k]%10;  ten = (num[k]/10)%10;  hundred = (num[k]/100)%10;  thousand = (num[k]/1000);  sum = unit+ten+hundred+thousand;  if(sum%2 ==1)  {   sum_array+=num[k];   count++;  } } avg_sum_array =(float)sum_array/i; if((fb2 = fopen("C:\\Dest.txt","w")) == NULL) {  printf("文件打开未成功!输入任意键推出程序!");  getchar();  exit(1); }else {   fprintf(fb2,"%d,%f",count,avg_sum_array);  printf("文件写入成功!!!\n"); } printf("满足奇数的个数为:%d,平均数为:%f\n",count,avg_sum_array); fclose(fb); fclose(fb2);}  

原创粉丝点击