c語言程式設計求大神急救,C語言程式設計,求大神急救。

2022-02-15 01:20:51 字數 3454 閱讀 5214

1樓:

#include

#include

#include

#define maxnumber 30

int total=0;

int a[maxnumber];

char * menuitem=

void displaymenu()

int genrandom(int m,n)void gennumber(int *a,int n)int deletenumberandprint(int *a,int k,int total)

break;

} while(n>0);

return 0;}

2樓:匿名使用者

題目倒是不難,關鍵是思路,估計是你產生不重複的0~29的數有麻煩給你個**你看看

int a[30];

int x,y,t,i;

for(i=0;i<30;i++) //賦值a,線性0~29

a[i]=i;

for(i=0;i<1000;i++) //迴圈次數越多,a陣列越亂

while(x!=y);

t=a[x]; 交換xy下標對應的a陣列中的數

a[x]=a[y];

a[y]=t;

}這樣a陣列中的0~29不重複,打亂了。

隨機交換兩個數

從頭取出10個即可。這樣比隨機生成一個數,判斷是否和前面的數相等要簡單一些

排序就不用說了吧,有經典的**,冒泡,選擇都可以

插入說一下,其實兩種方式

一個是放到最後,因為是有序了,和前面那個判斷一下,如果小,那麼交換,直到比他前面的那個大了為止,推出迴圈

第二個方式是賦值,新宣告一個陣列,從頭開始賦值,判斷是否比輸入的那個小,如果小,則把陣列中的賦值進去,如果大了,則把輸入的數賦值到那個位置,推出迴圈,接著再來一個迴圈,把剩下的賦值進去

刪除更簡單,其實就是一個迴圈把k後面的那些前移一個位置,把原先的覆蓋掉即可

3樓:匿名使用者

#include "stdio.h"

int getrand(int* a, int n)

int randdata;

int i, j;

randdata = rand()%30;           //n=rand()%(y-x+1)+x;/*n為x~y之間的隨機數*/

a[0] = randdata;

i = 1;

while (i < n)

randdata = rand()%30;           //n=rand()%(y-x+1)+x;/*n為x~y之間的隨機數*/

for (j = 0; j < i; j++)

if (a[j] == randdata)

break;

if (j == (i - 1))

a[i] = randdata;

i++;

printf("隨機資料為:\n");

for (i = 0; i < n; i++)

printf("%d\n", a[i]);

return n;}

int getorder(int* a, int n)

int i, j, t, pos;

for(i=0;i< n-1;i++)

pos=i;

for(j=i+1;jif(a[pos]>a[j])

pos=j;

t=a[i];

a[i]=a[pos];

a[pos]=t;

printf("排序結果為:\n");

for (i = 0; i < n; i++)

printf("%d\n", a[i]);

return n;}

int getnew(int k, int* a, int n)

int i, j;

for (i = 0; i < (n - 1); i++)

if (a[0] > k)

for (j = n; j > 0; j--)

a[j] = a[j - 1];

a[0] = k;

n++;

break;

else if (a[i] < k && a[i + 1] > k)

for (j = n; j > (i + 1); j--)

a[j] = a[j - 1];

a[i + 1] = k;

n++;

break;

else if (i == (n - 2))

a[n] = k;

n++;

break;

printf("輸出新陣列:\n");

for (i = 0; i < n; i++)

printf("%d\n", a[i]);

return n;}

int deledate(int k, int* a, int n)

int i;

for (i = k; i < (n - 1); i++)

a[i] = a[i + 1];

n--;

printf("輸出新陣列:\n");

for (i = 0; i < n; i++)

printf("%d\n", a[i]);

return n;}

void main()

int a[20];

int t, k, n;

n = 10;

while (1)

printf("請選擇功能:\n");

printf("輸入0,退出\n");

printf("輸入1,進行隨機數生成\n");

printf("輸入2,進行排序\n");

printf("輸入3,進行插入\n");

printf("輸入4,進行刪除\n");

scanf("%d", &t);

if (t == 0)

break ;

else if (t == 1)

n = getrand(a, n);            //存入隨機數

else if (t == 2)

n = getorder(a, n);           //排序

else if (t == 3)

printf("輸入新資料:\n");

scanf("%d", &k);

n = getnew(k, a, n);          //插入新數

else

printf("輸入需要刪除的編號:\n");

scanf("%d", &k);

n = deledate(k, a, n);        //刪除指定位置的數

輸入1的結果是:

4樓:程式猿3號

"主函式功能為顯示以下選單"

你說的以下選單在哪

C語言程式設計題,求大神,c語言程式設計題求大神幫忙!

按照你的要求編寫的用牛頓迭代 法求解方程的根的c語言程式如下 include include int main while fabs x x0 1e 5 printf 2f x return 0 c語言程式設計題求大神幫忙!include int main void newstr k 0 i 0,j...

求大神幫忙c語言程式設計,c語言程式設計題求大神幫忙!

include int main if weight 20 weight 30 if weight 30 weight 40 if weight 40 weight 50 if weight 50 return 0 include int main y p w printf 2f n y retur...

急C語言程式設計題求大神幫忙解答,c語言程式設計題求幫忙!!

include void main printf 諸葛亮最多可以戰 勝專 d個對手 屬 num c語言程式設計題求幫忙!是初學者嗎 這樣的問題最好說明哪一步不懂,自己練習還是最重要的scanf一位一位的讀入 乘除之後,switch case就ok了 include int main void cha...