c語言程序編號,c語言字母序號編程

本文目錄一覽:

C語言給數組中的元素按順序編號

首先,for(i=0;i10;i++)

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

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

這三個for循環是打錯了?

其次你的比較那兒也有問題,試想,當執行到7的時候,7和1比,count = 1,7再和第二個1比,count等於2,後面兩個不變,但是你往b數組中存放的時候,count又加了1,肯定就變成3了,9同理,把算法再改改

C語言編程問題:給數組中的元素按順序編號

最直接的辦法,用一個數組來作hash,時間複雜度最低,但是有最大值的限制,如下:

#includestdio.h

#define MAX_NUM 10000

#define n 10

int main()

{

int b[MAX_NUM] = {0};

int a[n],i,j;

int max = 0;

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

{

scanf(“%d”,a[i]);

if(a[i] = MAX_NUM)

{

printf(“invalid value [%d]! max than %d\n”,a[i], MAX_NUM);

return -1;

}

b[a[i]] = 1;

if(a[i] max)

{

max = a[i];

}

}

int idx = 1;

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

{

if(b[i] 0)

{

b[i] = idx;

idx++;

}

}

for(i=0;in – 1;i++)

printf(“%d,”,b[a[i]]);

printf(“%d\n”, b[a[n – 1]]);

return 0;

}

———–

修改過的:

#includestdio.h

#define MAX_NUM 10000

#define n 10

int main() {

int b[MAX_NUM] = {0};

int a[n],i,j;

int max = 0;

for(i=0;in;i++) {

scanf(“%d”,a[i]);

if(a[i] = MAX_NUM)

return -1;

b[a[i]] = 1;

max = a[i] max ? a[i] : max;

}

int idx = 1;

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

b[i] = b[i] 0 ? idx++ : b[i];

for(i=0;in – 1;i++)

printf(“%d,”,b[a[i]]);

printf(“%d\n”, b[a[n – 1]]);

return 0;

}

不過代碼長度有這麼重要麼?代碼的可讀性和正確性才是第一位的! 如果太糾結於長度,不如把所有代碼都寫道一行算了。多爽:“看,我的代碼一行就搞定了;”

如何編寫C語言程序使得輸入編號就可以顯示其他信息

簡單點的,你可以定義兩個數組A和B,A存放編號,B存放編號對應的其他信息,寫一個函數,返回類型為string,參數為編號,遍歷A數組,當找到編號匹配時記下是第i個元素,然後提取B中第i個元素對應的值並且返回。

如何編寫C語言程序使得輸入編號就可以顯示其他的個人信息

1、寫一個結構體數組用來記錄信息

 這裡我寫了一個可以存儲一個人的姓名、電話、郵箱的結構體。

struct note{

char name[100];

char phone[100];

char mail[100];

}people[1000];

2、用文件儲存更加方便

p=fopen(“list.txt”,”r”);

        if(p==NULL)

        {

            fclose(p);

            p=fopen(“list.txt”,”w”);

            fclose(p);

        }

3、寫一個簡單的界面(可以用死循環)

while(1)

        {

            n=0;

            p=fopen(“list.txt”,”r”);

            while(fscanf(p,”%s%s%s”,people[n].name,people[n].phone,people[n].mail)!=EOF)

                n++;

            fclose(p);

            ///——–一次循環更新一次數據

4、寫一個簡單的查找程序

int k;

            cout”輸入1讀取,輸入2輸入”endl;

            cink;

            if(k==1)

            {

                cout”輸入信息”endl;

                char s[100];

                cins;

                bool ok=0;

                for(i=0;istrlen(s);i++)

                    if(s[i]=’0’s[i]=’9′)

                      ok=1;

                    //自動識別輸入的是姓名還是電話號碼

                if(ok==0)

                {

                    //cout”通過姓名找到聯繫人”endl;

                    //system(“pause”);

                    bool you=0;

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

                        if(strcmp(s,people[i].name)==0)

                            {

                                you=1;

                                cout”姓名”people[i].nameendl;

                                cout”電話號碼”people[i].phoneendl;

                                cout”郵箱”people[i].mailendl;

                            }

                    if(you==0)

                      cout”沒有通過姓名找到聯繫人”endl;

                }

                if(ok==1)

                {

                    //cout”通過電話找聯繫人”endl;

                    //system(“pause”);

                    bool you=0;

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

                        if(strcmp(s,people[i].phone)==0)

                            {

                                you=1;

                                cout”姓名”people[i].nameendl;

                                cout”電話號碼”people[i].phoneendl;

                                cout”郵箱”people[i].mailendl;

                            }

                    if(you==0)

                      cout”沒有通過電話找到聯繫人”endl;

                }

5、添加信息的代碼

if(k==2)

            {

                p1=fopen(“list.txt”,”a+”);

                char ss[1000];

                cout”請輸入姓名”endl;

                cinss;

                fprintf(p1,”%s\n”,ss);

                cout”請輸入電話”endl;

                cinss;

                fprintf(p1,”%s\n”,ss);

                cout”請輸入郵箱”endl;

                cinss;

                fprintf(p1,”%s\n”,ss);

                fclose(p1);

            }

        }

最終的程序

#include cstdio

#include cmath

#include cstring

#include algorithm

#include iostream

#include cstring

#include cmath

using namespace std;

FILE *p,*p1;

struct note{

char name[100];

char phone[100];

char mail[100];

}people[1000];

int main()

    {

        int n=0,i,j;

        p=fopen(“list.txt”,”r”);

        if(p==NULL)

        {

            fclose(p);

            p=fopen(“list.txt”,”w”);

            fclose(p);

        }

        while(1)

        {

            n=0;

            p=fopen(“list.txt”,”r”);

            while(fscanf(p,”%s%s%s”,people[n].name,people[n].phone,people[n].mail)!=EOF)

                n++;

            fclose(p);

            ///—————

            int k;

            cout”輸入1讀取,輸入2輸入”endl;

            cink;

            if(k==1)

            {

                cout”輸入信息”endl;

                char s[100];

                cins;

                bool ok=0;

                for(i=0;istrlen(s);i++)

                    if(s[i]=’0’s[i]=’9′)

                      ok=1;

                if(ok==0)

                {

                    //cout”通過姓名找到聯繫人”endl;

                    //system(“pause”);

                    bool you=0;

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

                        if(strcmp(s,people[i].name)==0)

                            {

                                you=1;

                                cout”姓名”people[i].nameendl;

                                cout”電話號碼”people[i].phoneendl;

                                cout”郵箱”people[i].mailendl;

                            }

                    if(you==0)

                      cout”沒有通過姓名找到聯繫人”endl;

                }

                if(ok==1)

                {

                    //cout”通過電話找聯繫人”endl;

                    //system(“pause”);

                    bool you=0;

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

                        if(strcmp(s,people[i].phone)==0)

                            {

                                you=1;

                                cout”姓名”people[i].nameendl;

                                cout”電話號碼”people[i].phoneendl;

                                cout”郵箱”people[i].mailendl;

                            }

                    if(you==0)

                      cout”沒有通過電話找到聯繫人”endl;

                }

            }

            if(k==2)

            {

                p1=fopen(“list.txt”,”a+”);

                char ss[1000];

                cout”請輸入姓名”endl;

                cinss;

                fprintf(p1,”%s\n”,ss);

                cout”請輸入電話”endl;

                cinss;

                fprintf(p1,”%s\n”,ss);

                cout”請輸入郵箱”endl;

                cinss;

                fprintf(p1,”%s\n”,ss);

                fclose(p1);

            }

        }

        return 0;

    }

c語言 整數編號

這是你原來的方法,我改了兩行,

一個是put[j]=str[i],這一行要改成put[j]=str[i]-‘0’,這是從char 到 int的轉換,如果不變就成了把put[j]賦值成字符型str[i]的值了,

另一個在後面那個函數,return have使用之後,後面的代碼就不執行了,就好象短路一樣,

要放在後面,或是有條件的返回

可是改了這兩處之後還是不對,排出來結果差的太多,好象是你的冒泡內部的問題,要重新換種方法試試..我對排序很外行,查不出來根本所在

#include stdio.h

struct nn

{ int no;

int num;

};

typedef struct nn DATA;

int number( char * , DATA []);

int main( )

{

DATA b[100];

char sa[500]; //

int i, n;

gets( sa );

n = number( sa, b );

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

printf(“%d %d\n”, b[i].num, b[i].no );

return 0;

}

//

void bubbleSort(int arr[],int n)

{

int i,j,t;

for(i=0;in-1;i++)

{

for(j=0;jn-i-1;j++)

{

if(arr[j+1]arr[j])

{

t=arr[j+1];

arr[j+1]=arr[j];

arr[j]=t;

}

}

}

}

int number( char * str, DATA b[] )

{

int put[251],anshunxu[251],bianhao[251];

int i,j=0,have;

// 得數的個數

for(i=0;str[i]!=’\0′;i++)

{

if(str[i]!=’ ‘)

{

put[j]=str[i]-‘0’;

j++;

}

}

put[j]=’\0′;

have=j;

j=0;

//return have;

// 把put複製到anshunxu

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

{

anshunxu[i]=put[i];

}

// 冒泡排序

bubbleSort(anshunxu,have);

// 得到編號的數組

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

{

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

{

if(put[i]==anshunxu[j])

{

bianhao[i]=j+1;

}

}

}

bianhao[i]=’\0′;

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

{

b[i].num=put[i];

b[i].no=bianhao[i];

}

return have;

}

以上回答你滿意么?

原創文章,作者:XKYW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131596.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XKYW的頭像XKYW
上一篇 2024-10-03 23:46
下一篇 2024-10-03 23:46

相關推薦

  • 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
  • 使用SQL實現select 聚合查詢結果前加序號

    select語句是數據庫中最基礎的命令之一,用於從一個或多個表中檢索數據。常見的聚合函數有:count、sum、avg等。有時候我們需要在查詢結果的前面加上序號,可以使用以下兩種方…

    編程 2025-04-29
  • Python如何轉換小寫字母

    Python提供了一些簡單而有效的方法來處理字符串,包括下列方法,可以用來將字符串轉換為小寫字母。 一、lower() lower()是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中,我們經常會用到英文字母作為數字的代表,例如表示布爾值的True和False,表示空值的None等等。本文將從多個方面對Python中字母代表的數字進行詳細的闡述,…

    編程 2025-04-28

發表回復

登錄後才能評論