① 急!编写一段c语言程序,是关于歌曲排行系统的
编译能通过---------- 编译时把注释去掉
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct song{ //定义一个歌曲结构
int id; //歌曲号
char title[20]; //歌曲名
char singer[20]; //歌手名
};
typedef struct song SONG; //把结构命名为 SONG
int main( void )
{
SONG songlist[100]; //定义一个存储歌曲信息的列表,长100
int i=0,j;
int c;
clrscr();
while (i<=100) {
printf( "please enter the song's id, title and singer:\n" );
//输入歌曲号 然后空格 输入歌曲名 然后空格 输入歌手名 然后回车
scanf( "%d%s%s", &songlist[i].id, songlist[i].title, songlist[i].singer);
i++;
//每次输入完一条信息后,把列表中的歌曲信息全部打印出来看一下
printf("the songlist is below:\n\n");
for( j=0; j<=i; j++){
printf( "%d %s %s\n", songlist[j].id, songlist[j].title, songlist[j].singer );
}
printf("\n");
}
getch();
return 0;
}
② c语言游戏排行榜怎么弄
#include
#include
#include
#include
#include
char m;
int x,y,fx,fy,ta,blength=2;//为了方便,数组第0个元素不要了,直接从1开始
//length>=1必须的
int sbody_move;
struct sbody
{
int bx;
int by;
}sbody[1801];
int ou(int n)
{
if(n%2==1) n=n+1;
return n;
}
void map()
{
//地图20*60 活动空间18*58
printf("by qq1176611589 on 11.13\nYour body length=%d,goal=20\n",blength);
int i,a,b,pr=0;
for (i=1;i<=60;i++) //第一行全为“- ”
printf("-");
printf("\n");
for(i=1;i<=18;i++)//中间18行
{
printf("|");
for(a=1;a<=58;a++)//具体打印某个值
{
if(i==y && a==x) pr=1; //蛇头
if(i==fy && a==fx) pr=1; //产生食物
else
{
for(b=1;b<=blength;b++)
{
if(sbody[b].bx==a && sbody[b].by==i)
{
pr=1;
break;
}
}
}
if(pr==0) printf(" ");
if(pr==1) printf("*");
pr=0;
}
printf("|");
printf("\n");
}
for (i=1;i<=60;i++) //最后一行全为“- ”
printf("-");
printf("\n");
}
void move()
{
sbody[sbody_move].bx=x;//摆动身体
sbody[sbody_move].by=y;
sbody_move-=1;
if(sbody_move<=0)
sbody_move=blength;
switch(m)//蛇头坐标改变
{
case 's':y+=1;break;
case 'a':x-=2;break;
case 'd':x+=2;break;
case 'w':y-=1;
}
}
void s_introcer()//游戏初始化...
{
printf("by_Wang qq1176611589 on 11.13\nasdw控制移动方向,请切换成英文输入法,身体长度达到20胜利\n");
system("pause");
m='d';
x=10;
y=10;
sbody[1].by=10;
sbody[1].bx=8;
sbody[2].by=9;
sbody[2].bx=8;
sbody_move=blength;
char ta;
}
void food()
{
int data,guess,ran,i;
srand((unsigned)time(NULL));
ran=rand();
f: //每个坐标必须为偶数
fy=ou(rand()%(17)+1); //data (1,17) x58 y18
fx=ou(rand()%(57)+1); //(1,57)
if(x==fx && y==fy) goto f; //food不能在头上
for(i=1;i<=blength;i++)//food不能再身体上
{
if(sbody[i].bx==fx && sbody[i].by==fy)
{
goto f;
}
}
}
main()
{
system("mode con cols=65 lines=25");
s_introcer();//游戏初始化 打酱油的无伤大雅的开局介绍和进入游戏。
int win=0,de=1,i,gameover=0,fe=0;
for(;gameover==0;) //主程序 =====================
{
move();
if(x>58 || x18 || y<1)//判断游戏是否结束 活动空间x58 y18 /判断是否撞墙
break;
for(i=1;i<=blength;i++)//判断是否咬到自己
{
if(sbody[i].bx==x && sbody[i].by==y)
{
gameover=1;
break;
}
}
if(gameover==1) break;
system("cls");
if(kbhit())
{
ta=m;
m=getch();//判断按下某键 asdw作为控制
if(m=='a' && ta=='d') m=ta;
if(m=='d' && ta=='a') m=ta;
if(m=='w' && ta=='s') m=ta;
if(m=='s' && ta=='w') m=ta;
de=0;
}
if(x==fx && y==fy)
{
blength+=1;
fe=0;
}
if(blength>=20)
{
win=1;
break;
}
map();
if(fe==0)
{
food();//如果食物不存在,产生食物。
fe=1;
}
if(de==1)
Sleep(80);
if(de==0)
de=1;
}
if(win==0) printf("=========Gameover.You fail!=========\n");
if(win==1) printf("=========Gameover.You win!=========\n");
system("pause");
}
③ 有什么关于C语言的歌曲呢
1、告诉你最快的方法就是网络下个单片机音乐代码生成器,然后按照《最近好吗》《不开心与没烦恼》《我们结婚吧》的乐谱将每一个音符输入一遍,自动生成代码,下载进去就可以了。
2、另外就是手动编写了,根据对应频率每个音符每个调对应的编码,编好的码放到一个数组,然后定时器产生不同的pwm驱动蜂鸣器发声。高中低音有不同的频率1-7个音节
④ 用C语言写一个歌曲排行榜,读取文件的时候一堆乱码怎么解决呢谢谢!!!
write()函数里写用
fprintf
read()函数里面读用
fscanf,
对应使用呀,帅哥
⑤ 用C/C++设计歌曲排行榜系统,按照人气指数将排名前十位的歌曲信息显示并存储到文件中。。。
这是我曾经用C语言写的歌曲排行榜的程序,跟你要的略有出入,没有涉及任何打开关闭文件的操作。不过我想打开关闭文件还是简单的,相信朋友你这个应该还是会的。真的不会,可以上网搜搜,也可以那本程序书看看。在此,我就只提下方法:先以写的方式打开一个文件,然后输出时把结果写入文件,最后在关闭文件就好了。当然文件与源代码最好在同一个根目录下,这样操作相对简单点。希望我的回答能够帮到你,尝试过还是不行的话,可以随时联系我^_^
#include<stdio.h>
#include<stdlib.h>
#define N 100
typedef struct song { /*歌曲信息的结构类型*/
int No; /*编号*/
char song_name[32]; /*歌曲名称*/
char name[16]; /*歌手姓名*/
int num; /*票数*/
} SONG ;
void displayMenu();
int choiceItem();
int input(SONG s[ ]);
void browse(SONG s[ ], int n);
void Top10(SONG s[ ], int n);
void vote(SONG s[ ], int n);
int main()
{
SONG a[N]; /*存放参与排行榜的歌曲信息*/
int n, choice;
do{
choice = choiceItem(); /*获取菜单选择*/
switch (choice) {
case 1: n = input(a); break;
case 2: browse(a, n); break;
case 3: Top10(a, n); break;
case 4: vote(a, n); break;
}
} while (choice!=0);
printf("\n\nBye!!");
return 0;
}
void displayMenu() /*显示菜单*/
{
printf("\n============ Menu ============\n");
printf("\n 1..........Input informations\n");
printf("\n 2..........Browse informations\n");
printf("\n 3..........Print Top10\n");
printf("\n 4..........Vote\n");
printf("\n 0..........Exit \n");
printf("\nChoice:");
}
int choiceItem() /*选择菜单项*/
{
int choice;
char line[80];
do{
displayMenu();
gets(line);
choice = atoi(line);
} while (choice<0 || choice>4);
return choice;
}
int input(SONG s[ ]) /*输入歌曲信息*/
{
char buf[256];
int i = 0;
while ( 1 )
{
printf("\nPlease Input No Song_Name Singer_Name \n");
gets(buf); /*读入一行*/
if (buf[0] == '\0') break; /*空行*/
sscanf( buf, "%d%s%s", &s[i].No, s[i].song_name, s[i].name); /*分解数据*/
s[i++].num = 1;
}
return i;
}
void browse(SONG s[ ], int n) /*浏览歌曲信息*/
{
int i;
printf("\n Num\tSong_Name\tSinger_Name\n");
for (i=0; i<n; i++)
printf(" %d\t%s\t%s\n", s[i].No, s[i].song_name, s[i].name);
}
void Top10(SONG s[ ], int n) /*排序*/
{
int i, j, k;
SONG temp[N], t;
for (i=0; i<N; i++) /*复制*/
temp[i] = s[i];
for (i=0; i<n-1; i++) /*选择排序*/
{
k = i;
for (j=j+1; j<n; j++)
if (temp[k].num<temp[j].num) k = j;
if (k!=i)
{
t = temp[i];
temp[i] = temp[k];
temp[k] = t;
}
}
printf("\n Song_Name\tSinger_Name\n");
for (i=0; i<10 && i<n; i++) /*输出前10名*/
printf(" %s\t\t%s\n", temp[i].song_name, temp[i].name);
}
void vote(SONG s[ ], int n) /*投票*/
{
int i;
char buf[80];
printf("\nEnter song'No :"); /*输入歌曲编号*/
gets(buf);
for (i=0; i<n; i++) /*查找相应的歌曲并累加票数*/
if (s[i].No==atoi(buf))
{
s[i].num++;
printf("\nVote OK\n");
break;
}
if (i==n)
printf("Error No.\n");
}
⑥ 为什么C语言在最新的排行榜上排第一
开始学习不在于多,而在于精.
初学者不要过多停留在语言与工具的表面.学习一门能深入底层的语言,最好的选择是:汇编,C,C++.我感觉C/C++足以,汇编用于调试和嵌入汇编就可以了.我选择的是C语言,因为它入门简单,深入难,需要数据结构和算法支持,这样能更好的学习数据结构和算法.
初学者不要使用Java,VC++的MFC,VB,那样会很危险的.如果无深入底层,停留在语言表面过久,不利于初学者未来的发展和继续学习.对! 你可以用JAVA编程,你可以用MFC做出东西,你也可以用VB程序.但是一些比较底层的东西你一点都不知道,连汇编的调试也不懂,程序BUG在那里也不知道.那永远只是一个熟练使用锤子的工人,难道你不想成为建筑工程师吗?楼房是你构思的,图纸是你画的,而不是建造楼房中的一个不起眼的埋头工作的工人.
深入底层学习大概: C/C++ ->数据结构->编译原理
数字电路和汇编语言->计算机组成原理
操作系统->Linux内核
自己再动手写一个比较简单的内核.
为什么要学习内核.why?因为内核是一个学习软件工程最好的摸版,有很多技巧,技术,是C/C++课本上无法学到的,这主要是把理论知识总结起来.为什么要自己写一个简单的操作系统内核,大家也知道,没有什么比实践更容易理解.等你把简单的内核完成的时候,你的计算机组成原理,操作系统,Linux内核, 数据结构,C语言,汇编会得到一个更深层次的理解.
这些东西,是那些只能玩玩 VB,VC++,JAVA的低级程序员能理解的吗?这就是为什么有些高级程序员,只要看看的VB的书,不用两三天就能掌握的原因.你叫java程序员来试一下.
所以说,成为了高手,基础打牢靠了,学什么都简单.比起你今年学个java,明年又学个VC++.最后没有一样能学好.不如把时间用来打好基础.
希望各位能给未来的软件产业作出贡献. 希望大家多多支持Linux和开源软件.
我也是一名正在学习中的大一新生.我之所以能有这样的思想,真的没有什么好好奇的.那是我从以前的各位大师身上吸取的思想.我也正在为成为高手而努力.
想为成为高手而努力,就不要把时间浪费在打游戏,打牌,弹吉他等一些事情上了,我们计算机学院的学生都是网游成风,我真为他们担心,更为中国未来软件的产业担心.
⑦ C语言编1个歌手大赛的排名
纯C语言,结尾附上程序运行结果 #include <stdio.h> #define N 50 struct XuanShou { int ID; float mark[N]; float max_m,min_m,aver_m; }; void (struct XuanShou *m_to, struct XuanShou *m_from) { int i; for(i=0; i<N; i++) m_to->mark[i] = m_from->mark[i]; m_to->ID = m_from->ID; m_to->max_m = m_from->max_m; m_to->min_m = m_from->min_m; m_to->aver_m = m_from->aver_m; } int main() { struct XuanShou xs[N]; struct XuanShou temp; float mark[N],sum_m,max_m,min_m; int i,j,nPW,nXS; printf("请输入评委个数(至少3个):"); scanf("%d",&nPW); if(nPW<3) return 0; printf("\n请输入选手个数:"); scanf("%d",&nXS); if(nXS==0) return 0; printf("\n请输入选手得分,以制表符间隔:\n"); printf("\n选手"); for(i=0; i<nPW; i++) printf("\t评委%d",i+1); for(i=0; i<nXS; i++) { printf("\n %d号\t",i+1); xs[i].ID = i+1; sum_m = 0; for(j=0; j<nPW; j++) { scanf("%f",&mark[j]); xs[i].mark[j] = mark[j]; sum_m += mark[j]; } max_m = min_m = mark[0]; for(j=0; j<nPW; j++) //求某一选手的最高得分与最低得分 { if(xs[i].mark[j]>max_m) max_m = xs[i].mark[j]; else if(xs[i].mark[j]<min_m) min_m = xs[i].mark[j]; } sum_m = sum_m-(max_m+min_m); xs[i].max_m = max_m; xs[i].min_m = min_m; xs[i].aver_m = sum_m/(float)(nPW-2); //某选手最终得分 } for(i=0; i<nXS; i++) //冒泡排序 { for(j=nXS-1; j>i; j--) { if(xs[j].aver_m > xs[j-1].aver_m) { (&temp,&xs[j]); (&xs[j],&xs[j-1]); (&xs[j-1],&temp); } } } printf("\n歌手大赛结果如下:\n"); printf("\n\t选手\t最高分\t最低分\t最终得分"); for(i=0; i<nXS; i++) { printf("\n第%d名:",i+1); printf("\t%d号",xs[i].ID); printf("\t%.2f",xs[i].max_m); printf("\t%.2f",xs[i].min_m); printf("\t%.2f\n",xs[i].aver_m); } return 0; } //程序运行结果如下 /* 请输入评委个数(至少3个):4 请输入选手个数:6 请输入选手得分,以制表符间隔: 选手 评委1 评委2 评委3 评委4 1号 6.8 6.9 6.6 7.0 2号 7.2 7.4 7.5 7.8 3号 6.4 6.8 6.8 6.4 4号 7.5 7.7 7.9 8.0 5号 8.3 8.6 8.5 8.5 6号 8.8 8.8 9.0 8.6 歌手大赛结果如下: 选手 最高分 最低分 最终得分 第1名: 6号 9.00 8.60 8.80 第2名: 5号 8.60 8.30 8.50 第3名: 4号 8.00 7.50 7.80 第4名: 2号 7.80 7.20 7.45 第5名: 1号 7.00 6.60 6.85 第6名: 3号 6.80 6.40 6.60 Press any key to continue */
⑧ 用C语言编写简单的音乐播放器!高悬赏quq
记得有一本书《Linux程序设计》里面有做播放器的步骤和程序,可以看一下
⑨ 用C语言编音乐排行榜
C语言是实现算法的 不是网络交互的
和什么人气 前十名是没有关系的……
LZ貌似还没有研究深入啊……