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/n/131596.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
XKYWXKYW
上一篇 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

发表回复

登录后才能评论