用c語言求sna+aa+a,用C語言求3000以內的親密數

本文目錄一覽:

c語言,定義一個類,超市商品(價格,數量,品種,收益額)(品種分為水果,蔬菜,零食,飲料)

/*

******************************

* 直接struct goods XX定義一個就看了眼了。

* 望採納;)

*******************************

*/

enum vrt_tag{ //品種

    fru, //水果

    veg, //蔬菜

    sna, //零食

    dri  //飲料

};

struct goods{

    unsigned int value; //價格

    unsigned int num;  //數量

    unsigned int gain; //收益

    enum vrt_tag vrt; //品種

};

C語言在線求大佬幫助

題目關鍵要求學號和姓名必須有長度驗證(4個字元,也就是說字元串大小5)。

由於C語言庫中的scanf函數是不驗證長度的,所以不能直接用。

這裡方法很多,方法一:如你用Microsoft Visual Studio寫代碼,可使用scanf_s()來限制長度。方法二:使用getchar或getch函數循環一個一個接收字元並判斷字元ASCII。方法三:

預先定義一個比較大的字元串來接收輸入,然後判斷輸入的長度。

由於scanf_s不是C語言內置函數,所以我用第三種方法來做。

#include stdio.h

#include string.h

#define MS 5//最學生人數

#define MC 3//最大學科數

#define MN 4//姓名可輸入的最大字元串長度

#define MI 4//學號可輸入的最大字元串長度

typedef struct students

{

  char sID[MI+1];

  char sNa[MN+1];

  int ss[MC];

}STUS;

void inputSInfo(STUS stus[]);

void prfStus(STUS stus[]);

int main()

{

  STUS stus[MS];

  inputSInfo(stus);

  prfStus(stus);

  return 0;

}

void prfStus(STUS stus[])

{

  int i,j,sum;

  for(i=0;iMS;i++)

  {

      printf(“%5s %5s”,stus[i].sID,stus[i].sNa);

      sum=0;

      for(j=0;jMC;j++)

          sum+=stus[i].ss[j];

      printf(” %5.1f\n”,sum*1.0/MC);

  }

}

void inputSInfo(STUS stus[])

{

  char str[100];

  int i,j;

  printf(“請分別輸入%d名學生的信息:(學號及姓名不得超過4個字元)\n”,MS);

  for(i=0;iMS;i++)

  {

      memset(str,0,100);

      scanf(“%s”,str);

      if(str[MI]!=0)

      {

          printf(“錯誤!學號超過4個字元!請重新輸入該行信息!\n”);

          i–;

          continue;

      }else strcpy(stus[i].sID,str);

      scanf(“%s”,str);

      if(str[MI]!=0)

      {

          printf(“錯誤!姓名超過4個字元!請重新輸入該行信息!\n”);

          i–;

          continue;

      }else strcpy(stus[i].sNa,str);

      for(j=0;jMC;j++)

          scanf(“%d”,stus[i].ss[j]);

  }

}

c語言小遊戲代碼

最基礎的貪吃蛇的代碼

#includestdio.h

#includewindows.h//基本型態定義。支援型態定義函數。使用者界面函數 圖形裝置界面函數。

#includeconio.h //用戶通過按鍵盤產生的對應操作 (控制台)

#includestdlib.h

#includetime.h //日期和時間頭文件

#define LEN 30

#define WID 25

int Snake[LEN][WID] = {0}; //數組的元素代表蛇的各個部位

char Sna_Hea_Dir = ‘a’;//記錄蛇頭的移動方向

int Sna_Hea_X, Sna_Hea_Y;//記錄蛇頭的位置

int Snake_Len = 3;//記錄蛇的長度

clock_t Now_Time;//記錄當前時間,以便自動移動

int Wait_Time ;//記錄自動移動的時間間隔

int Eat_Apple = 1;//吃到蘋果表示為1

int Level ;

int All_Score = -1;

int Apple_Num = -1;

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //獲取標準輸出的句柄 windows.h

//句柄 :標誌應用程序中的不同對象和同類對象中的不同的實例 方便操控,

void gotoxy(int x, int y)//設置游標位置

{

COORD pos = {x,y}; //定義一個字元在控制台屏幕上的坐標POS

SetConsoleCursorPosition(hConsole, pos); //定位游標位置的函數windows.h

}

void Hide_Cursor()//隱藏游標 固定函數

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(hConsole, cursor_info);

}

void SetColor(int color)//設置顏色

{

SetConsoleTextAttribute(hConsole, color);

//是API設置字體顏色和背景色的函數 格式:SetConsoleTextAttribute(句柄,顏色);

}

void Print_Snake()//列印蛇頭和蛇的脖子和蛇尾

{

int iy, ix, color;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy] == 1)//蛇頭

{

SetColor(0xf); //oxf代表分配的內存地址 setcolor:34行自定義設置顏色的函數

gotoxy(ix*2, iy);

printf(“※”);

}

if(Snake[ix][iy] == 2)//蛇的脖子

{

color = rand()%15 + 1; //rand()函數是產生隨機數的一個隨機函數。C語言里還有 srand()函數等。

//頭文件:stdlib.h

if(color == 14)

color -= rand() % 13 + 1; //變色

SetColor(color);

gotoxy(ix*2, iy);

printf(“■”);

}

if(Snake[ix][iy] == Snake_Len)

{

gotoxy(ix*2, iy);

SetColor(0xe);

printf(“≈”);

}

}

}

void Clear_Snake()//擦除貪吃蛇

{

int iy, ix;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

gotoxy(ix*2, iy);

if(Snake[ix][iy] == Snake_Len)

printf(” “);

}

}

void Rand_Apple()//隨機產生蘋果

{

int ix, iy;

do

{

ix = rand() % LEN;

iy = rand() % WID;

}while(Snake[ix][iy]);

Snake[ix][iy] = -1;

gotoxy(ix*2, iy);

printf(“⊙”);

Eat_Apple = 0;

}

void Game_Over()//蛇死掉了

{

gotoxy(30, 10);

printf(“Game Over”);

Sleep(3000);

system(“pause nul”);

exit(0);

}

void Move_Snake()//讓蛇動起來

{

int ix, iy;

for(ix = 0; ix LEN; ++ix)//先標記蛇頭

for(iy = 0; iy WID; ++iy)

if(Snake[ix][iy] == 1)

{

switch(Sna_Hea_Dir)//根據新的蛇頭方向標誌蛇頭

{

case ‘w’:

if(iy == 0)

Game_Over();

else

Sna_Hea_Y = iy – 1;

Sna_Hea_X = ix;

break;

case ‘s’:

if(iy == (WID -1))

Game_Over();

else

Sna_Hea_Y = iy + 1;

Sna_Hea_X = ix;

break;

case ‘a’:

if(ix == 0)

Game_Over();

else

Sna_Hea_X = ix – 1;

Sna_Hea_Y = iy;

break;

case ‘d’:

if(ix == (LEN – 1))

Game_Over();

else

Sna_Hea_X = ix + 1;

Sna_Hea_Y = iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1Snake[Sna_Hea_X][Sna_Hea_Y]!=0Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y] 0)//吃到蘋果

{

++Snake_Len;

Eat_Apple = 1;

}

for(ix = 0; ix LEN; ++ix)//處理蛇尾

for(iy = 0; iy WID; ++iy)

{

if(Snake[ix][iy] 0)

{

if(Snake[ix][iy] != Snake_Len)

Snake[ix][iy] += 1;

else

Snake[ix][iy] = 0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//處理蛇頭

}

void Get_Input()//控制蛇的移動方向

{

if(kbhit())

{

switch(getch())

{

case 87:

Sna_Hea_Dir = ‘w’;

break;

case 83:

Sna_Hea_Dir = ‘s’;

break;

case 65:

Sna_Hea_Dir = ‘a’;

break;

case 68:

Sna_Hea_Dir = ‘d’;

break;

default:

break;

}

}

if(clock() – Now_Time = Wait_Time)//蛇到時間自動行走

{

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time = clock();

}

}

void Init()//初始化

{

system(“title 貪吃毛毛蛇”);

system(“mode con: cols=80 lines=25”);

Hide_Cursor();

gotoxy(61, 4);

printf(“You Score:”);

gotoxy(61, 6);

printf(“You Level:”);

gotoxy(61, 8);

printf(“The Lenght:”);

gotoxy(61, 10);

printf(“The Speed:”);

gotoxy(61, 12);

printf(“Apple Num:”);

int i;

for(i = 0; i Snake_Len; ++i)//生成蛇

Snake[10+i][15] = i+1;

int iy, ix;//列印蛇

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]);

gotoxy(ix*2, iy);

printf(“■”);

}

}

}

void Pri_News()//列印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score += Level;

printf(“%3d”, All_Score);

gotoxy(73, 6);

printf(“%3d”, Level);

gotoxy(73, 8);

printf(“%3d”,Snake_Len);

gotoxy(73, 10);

printf(“0.%3ds”, Wait_Time/10);

gotoxy(73, 12);

printf(“%d”, Apple_Num);

}

void Lev_Sys()//等級系統

{

if(((Apple_Num-1) / 10) == Level)

{

++Level;

if(Wait_Time 50)

Wait_Time -= 50;

else

if(Wait_Time 10)

Wait_Time -= 10;

else

Wait_Time -= 1;

}

}

int main(void)

{

Init();

srand((unsigned)time(NULL));//設置隨機數的種子

Now_Time = clock();

int speed1=1000,speed2,a;

printf(“\n”);

printf(“請輸入你想要的速度\n”);

scanf(“%d”,speed2);

Level=1;

Wait_Time=speed1-speed2;

printf(“請輸入你想要的蘋果數\n”);

scanf(“%d”,a);

while(a–)

Rand_Apple();

while(1)

{

if(Eat_Apple)

{

++Apple_Num;

Rand_Apple();

Lev_Sys();

Pri_News();

}

Get_Input();

Sleep(10);

}

return 0;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/196439.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 09:55
下一篇 2024-12-03 09:55

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論