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...