當前位置:首頁 » 編程語言 » c語言基數

c語言基數

發布時間: 2023-02-02 00:48:21

1. c語言中分子和分母用什麼表示

c語言中分子和分母用基數和序數表示。

在C預言的環境中,分子用基數詞,分母用序數詞。分子如果是1以上,分母用復數。同時分數可以表示為「分子/分母」的形式。編寫一個程序,要求用戶輸入一個分數,然後將其約分為最簡分式。

簡介:

C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。

2. 求c語言基數排序與桶排序的源代碼

基數排序:

#include<math.h>
testBS()
{
inta[]={2,343,342,1,123,43,4343,433,687,654,3};
int*a_p=a;
//計算數組長度
intsize=sizeof(a)/sizeof(int);
//基數排序
bucketSort3(a_p,size);
//列印排序後結果
inti;
for(i=0;i<size;i++)
{
printf("%d ",a[i]);
}
intt;
scanf("%d",t);
}
//基數排序
voidbucketSort3(int*p,intn)
{
//獲取數組中的最大數
intmaxNum=findMaxNum(p,n);
//獲取最大數的位數,次數也是再分配的次數。
intloopTimes=getLoopTimes(maxNum);
inti;
//對每一位進行桶分配
for(i=1;i<=loopTimes;i++)
{
sort2(p,n,i);
}
}
//獲取數字的位數
intgetLoopTimes(intnum)
{
intcount=1;
inttemp=num/10;
while(temp!=0)
{
count++;
temp=temp/10;
}
returncount;
}
//查詢數組中的最大數
intfindMaxNum(int*p,intn)
{
inti;
intmax=0;
for(i=0;i<n;i++)
{
if(*(p+i)>max)
{
max=*(p+i);
}
}
returnmax;
}
//將數字分配到各自的桶中,然後按照桶的順序輸出排序結果
voidsort2(int*p,intn,intloop)
{
//建立一組桶此處的20是預設的根據實際數情況修改
intbuckets[10][20]={};
//求桶的index的除數
//如798個位桶index=(798/1)%10=8
//十位桶index=(798/10)%10=9
//百位桶index=(798/100)%10=7
//tempNum為上式中的1、10、100
inttempNum=(int)pow(10,loop-1);
inti,j;
for(i=0;i<n;i++)
{
introw_index=(*(p+i)/tempNum)%10;
for(j=0;j<20;j++)
{
if(buckets[row_index][j]==NULL)
{
buckets[row_index][j]=*(p+i);
break;
}
}
}
//將桶中的數,倒回到原有數組中
intk=0;
for(i=0;i<10;i++)
{
for(j=0;j<20;j++)
{
if(buckets[i][j]!=NULL)
{
*(p+k)=buckets[i][j];
buckets[i][j]=NULL;
k++;
}
}
}
}

桶排序

#include<stdio.h>
#defineMAXNUM100

voidbucksort(intarr[],intN,intM)
{
intcount[MAXNUM];
for(inti=0;i<=M;i++)
{
count[i]=0;
}

for(inti=0;i<N;i++)
{
++count[arr[i]];
}

for(inti=0;i<=M;i++)
{
for(intj=1;j<=count[i];j++)
{
printf("%d",i);
}
}
}

intmain()
{
inta[]={2,5,6,12,4,8,8,6,7,8,8,10,7,6};
bucksort(a,sizeof(a)/sizeof(a[0]),12);
return0;
}

3. c語言,基數排序

如圖

//#pragmaGCCdiagnosticerror"-std=c11"
#include<stdlib.h>//有隨機數庫
#include<malloc.h>
#include<time.h>//用於產生隨機數種子
#include<string.h>
#include<stdio.h>

#defineLEN30//要多長這里改就行
intA[LEN];

intascend(constvoid*a,constvoid*b){
return*((int*)a)-*((int*)b);
}

voidprintArr(intA[],intlen){
inti;
for(i=0;i<len;++i){
printf("%d",A[i]);
if((i+1)%10==0)putchar(' ');//10個數換一行
}
}

intmain(){
inti;
srand(time(0));//置隨機數種子
printf("生成隨機數:↓ ");
for(i=0;i<LEN;++i){
A[i]=rand();
}
printArr(A,LEN);

printf(" 排序後:↓ ");
qsort(A,LEN,sizeof(int),ascend);
printArr(A,LEN);
return0;
}

4. C語言,基數排序

#include <stdio.h>

typedef struct node {
int data;
int next;
} node;

int head; //這里的head是全局變數
int fr[10];
int re[10];

void Distribute(node *a, int w) //第一次w=1
{
int i;
for (i=0; i<10; i++) { //初始化
fr[i] = -1;
}
for (i=head; i!=-1; i=a[i].next) { //第一次i=0
int x = a[i].data / w % 10; //這是以前求一個數各個位的方法例:98%10=8(個位) 98/10%10=9(十位)

if (fr[x] == -1) {
fr[x] = re[x] = i;
}
else {
a[re[x]].next = i;
re[x] = i;
}
}
for (i=0; i<10; i++) {
if (fr[i] != -1) {
a[re[i]].next = -1;
}
}
}

void Collect(node *a)
{
int i, last;

last = -1;
for (i=0; i<10; i++) {
if (fr[i] != -1) {
if (last == -1) {
head = fr[i];
last = re[i];
}
else {
a[last].next = fr[i];
last = re[i];
}
}
}
a[last].next = -1;
}

void Out(node *a, int w)
{
int i, p, k;

printf("weight == %d\n", w);
for (i=0; i<10; i++) {
printf("fr[%d] ", i);
p = fr[i];
k = 0;
while (p != -1) {
printf("->%4d ", a[p].data);
p = a[p].next;
k++;
}
while (k<3) printf("-------"),k++;
printf("-> re[%d]\n", i);
}
}

void Output(node *a, int head) //結構體指針 ,這里的head是形參,調用此函數結束後即釋放,不影響全局變數head的值
{
while (head != -1) {
printf("%4d", a[head].data);
head = a[head].next;
}
printf("\n");
}

void main()
{
//對於無數據的數組排序會出錯~~~
//614 738 921 485 637 101 215 530 790 306
node a[10]; //結構體數組
int i, n = 10, max;
max = 0x80000000; //此處對0x80000000及MAX的意思不理解
printf("max == %d\n", max);
printf("Please intput %d numbers~\n", n);
for (i=0; i<n; i++) {
scanf("%d", &a[i].data); //賦值
a[i].next = i + 1;
if (a[i].data > max) max=a[i].data;
}
head = 0;
a[n - 1].next = -1;

Output(a, head);
for (i=1; i<=max; i*=10) {
Distribute(a, i);
Out(a, i);
Collect(a);
Output(a, head);
}
}

5. C語言中置基數為什麼意識

是在輸出中的說明符么?%d是以十進制輸出,%o是八進制,%x是十六進制,基數分別就是10、8、16

6. C語言尋找基數問題

/*

輸入數字串(空格結束) : 360F

360F(16) ←→ 13839(10)

360F(17) ←→ 16488(10)

360F(18) ←→ 19455(10)

360F(19) ←→ 22758(10)

360F(20) ←→ 26415(10)

360F(21) ←→ 30444(10)

360F(22) ←→ 34863(10)

360F(23) ←→ 39690(10)

360F(24) ←→ 44943(10)

360F(25) ←→ 50640(10)

360F(26) ←→ 56799(10)

360F(27) ←→ 63438(10)

360F(28) ←→ 70575(10)

360F(29) ←→ 78228(10)

360F(30) ←→ 86415(10)

360F(31) ←→ 95154(10)

360F(32) ←→ 104463(10)

360F(33) ←→ 114360(10)

360F(34) ←→ 124863(10)

360F(35) ←→ 135990(10)

360F(36) ←→ 147759(10)

輸入數字串(空格結束) :

*/

#include<stdio.h>
#include<string.h>

intMin_base(chars[]){//尋找最小基數函數
inti,temp,min=0;
for(i=0;s[i];i++){//將字母轉換為數字,如A=10
if(s[i]>='0'&&s[i]<='9'){//阿拉伯數字
temp=s[i]-'0';
if(min<temp)min=temp;
}
elseif(s[i]>='A'&&s[i]<='Z'){//大寫英文字母
temp=s[i]-'A'+10;
if(min<temp)min=temp;
}
elseif(s[i]>='a'&&s[i]<='z'){//小寫英文字母
temp=s[i]-'a'+10;
if(min<temp)min=temp;
}
//其他字元,如小數點等不作處理
}
returnmin+1;
}

unsignedlongChange(chars[],intbase){//將base進制的數字串轉換為10進制數
unsignedlongi,num=0;
for(i=0;s[i];++i){
if(s[i]>='0'&&s[i]<='9')num=base*num+s[i]-'0';
elseif(s[i]>='A'&&s[i]<='Z')num=base*num+s[i]-'A'+10;
elseif(s[i]>='a'&&s[i]<='z')num=base*num+s[i]-'a'+10;
elsebreak;//非數字字元結束轉換
}
returnnum;
}

/*
用英文字母(不分大小寫)和阿拉伯數字組成的數基數在2到36之間。下面的函
數將給定的數字以可能進制數輸出。單一情況是,若數字串中僅含有0和1,
那麼這個數只能是2進制。多種情況是,當數字串中含有'F'或'f'時,這個數
可能是16進制到36進制之間的數。
*/
voidShow(chars[]){
inti,min=Min_base(s);
for(i=min;i<=36;i++)
printf("%s(%02d)←→%u(10) ",s,i,Change(s,i));
}

intmain(){
chars[10];
while(1){
printf("輸入數字串(空格結束):");
gets(s);
if(s[0]=='')break;
Show(s);
}
return0;
}
熱點內容
安卓和蘋果哪個最保值 發布:2024-11-02 02:30:02 瀏覽:603
橋接的網關伺服器地址怎麼查 發布:2024-11-02 02:29:11 瀏覽:861
電腦里dns伺服器未響應咋辦 發布:2024-11-02 02:28:24 瀏覽:543
星與雲伺服器 發布:2024-11-02 02:27:49 瀏覽:205
centos升級python27 發布:2024-11-02 02:00:57 瀏覽:673
ue4未找到編譯器 發布:2024-11-02 01:46:08 瀏覽:155
python中的withopen 發布:2024-11-02 01:46:07 瀏覽:976
編程名人 發布:2024-11-02 01:42:18 瀏覽:867
伺服器電腦配置表 發布:2024-11-02 01:41:29 瀏覽:370
linux使用串口 發布:2024-11-02 01:37:11 瀏覽:702