① 急!編寫一段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貌似還沒有研究深入啊……