排行榜

  • 用户榜
  • 标签榜
  • 冲榜分奖金

频道

最新最热悬赏待采纳 筛选
  • 0

    回答

  • 5

    浏览

openmp并行for循环里调用函数会出错吗???会出现数据竞争吗???

回答 up2u8593
采纳率100%
6分前
  • 0

    回答

  • 5

    浏览

#include <stdio.h> #include <stdlib.h> #include <string.h>   int GetWords(char *sentence, char *words[]); void SortStrings(const char *strs[], int count);   int main() {     char str[200];     int nWords = 0;     char *words[20];     int i;       printf("input a string: ");     gets(str);       nWords = GetWords(str, words);     SortStrings(words, nWords);       puts("output:");     for(i=0; i<nWords; i++)         puts(words[i]);     system("pause");     return 0; }   int GetWords(char *str, char *words[]) { /******start******/ int i, cnt = 0;     char ch = ' ';     for (i = 0; str[i] != '\0'; i++)     {         if (ch == ' ' && str[i] != ' ')         {             words[cnt] = str+i;             ch = str[i];             cnt++;         }         else if (str[i] == ' ')         {             ch = str[i];             str[i] = '\0';         }         else if (str[i] == '.')         {             str[i] = '\0';             break;         }              }     return cnt; /******end******/ }   void SortStrings(const char *strs[], int count) { /******start******/ int i, j;     const char *tmp;     for (i = 0; i < count; i++)     {         for (j = 0; j < count - i - 1; j++)         {             if (strcmp(strs[j], strs[j+1]) > 0)             {                 tmp=strs[j];                 strs[j]=strs[j+1];                 strs[j+1]=tmp;             }         }     } /******end******/ }   36行,为什么一定要有ch !=  ' '这一条件?

  • 1

    回答

  • 7

    浏览

从文件中读取的字符最多应为7个,那为什么把循环的12改为8就会出错,不应该大于7的数都可以吗?

  • 0

    回答

  • 5

    浏览

. 一个人手里有2,3,4,5,6,7,8,9,10,J,Q,K,A等13张牌。现在,他随便扔掉一张牌,请根据手里还剩下的牌,输出扔掉的是哪张牌。

回答 日斤小台
采纳率100%
1小时前
  • 2

    回答

  • 19

    浏览

储蓄业务越来越走进人们的生活。代发工资、代缴水电费、代缴电话费等业务极大的方便了人们的日常生活。越来越多的人们也开始使用银行业务、储蓄业务,同时银行储蓄客户越来越多。银行还在使用手工记帐,由于手工记帐工作效率非常低,通常有储户等待,排成长龙的现象,同时这给工作人员增加了非常大的负担和额外的工作负荷,也给银行的发展带来了严重的制约和压力,银行储蓄信息化已经到了不解决不行的地步。 系统的具体需求: 假定只有10个用户,将储蓄用户的帐户信息保存到文件。每个用户具有用户身份证号码、用户银行账号和相应余额(每个用户可以具有多个账号),将这个10个用户信息存入文件d:\master.txt; 查询某用户所有本行账号余额,按格式输出; 为银行每月存取业务进行结算存入一个文件yearmonthname.txt,包含月份、用户身份证、用户账号、存取类型(L表示存,D表示取)、存取金额; 根据yearmonthname.txt文件数据对master.txt数据进行结算,并修改相应数据,并将数据按格式输出。

  • 0

    回答

  • 3

    浏览

51单片机正反转,加减速,有档位显示如何,把档位换成转速数值

  • 0

    回答

  • 9

    浏览

【问题描述】   编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树。例如如下的先序遍历字符串:ABC##DE#G##F### ,其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再计算任意两个结点的最近公共祖先,输出共同祖先。 【输入形式】    1、输入包括1行字符串,长度不超过100。    2、两个节点 【输出形式】   可能有多组测试数据,对于每组数据,输出共同祖先字符。 【样例输入】   abc##de#g##f###   c f 【样例输出】   b

  • 1

    回答

  • 13

    浏览

#include <stdio.h> #include <stdlib.h> #define maxsize 100 typedef int ElemType; typedef struct LNode  //节结点数据类型定义 {     ElemType data;//存放数据     struct LNode *next;//指向下一个指针 }LinkList; void CreatListR_L(LinkList *L,ElemType a[],int n)//尾插法建表 {     LinkList *s,*r;     int i;     L=(LinkList *)malloc(sizeof(LinkList));//创建头结点     r=L;//r始终指向尾结点,开始时指向头结点     for(i=0;i<n;i++)         {             s=(LinkList *)malloc(sizeof(LinkList));//生成新节点             s->data=a[i];//新结点插入数据             r->next=s;//将s插入r后             r=s;         }     r->next=NULL;//尾结点设置为空 } void IinkList(LinkList *L)//初始化单链表 {     L=(LinkList*)malloc(sizeof(LinkList ));     L->next=NULL; } void DestoryList_L(LinkList *L)//摧毁单链表 {     LinkList *pre=L,*p=L->next;//*pre指向p的前驱结点     while(p!=NULL)//扫描链表         {             free(pre);             pre=p;             p=pre->next;         }     free(pre); } _Bool ListEmpty_L(LinkList *L)//判断单链表是否为空 {     return(L->next=NULL); } int ListLength_L(LinkList *L)//输出单链表长度 {     LinkList *p=L;     int n=0;     while (p->next!=NULL)//指针p向后扫描,计算单链表长度         {             n++;             p=p->next;         }     return n;   //返回长度 } int GetElem_L(LinkList *L,int i,ElemType e)//求单链表中某个数据元素值 {     int j=0;     LinkList *p=L;//设置指针p指向L的头结点     while(p!= NULL&&j<i)//查找第i个结点         {             j++;             p=p->next;         }     if(p==NULL)//没有这个结点         {             return 0;         }     else//存在这个结点,返回相应数值e         {             e=p->data;             return e;         } } int LocateElem_L(LinkList *L,ElemType e)//查找某元素的逻辑位置 {     int i=1;//从1开始     LinkList *p=L->next;//p指向开始结点     while(p!=NULL&&p->data!=e)//查找data为e的结点,其序号为i         {            p=p->next;            i++;         }     if(p==NULL)         return 0;     else         return i; } _Bool LinkInsert_L(LinkList *L,int i,ElemType e)//在单链表第i个位置前插入数据,即将数据插入到第几位 { LinkList *p=L,*s;     int j=0;     if(i<1)         return 0;     while(p!=NULL&&j<i-1)//寻找第i-个结点         {             j++;             p=p->next;         }     if(p==NULL)//找不到         return 0;     else //找到了,插入新结点         {             s=(LinkList *)malloc(sizeof(LinkList));//创建新结点             s->data=e;             s->next=p->next;             p->next=s;             return 1;         } } void DispList(LinkList *L)  //输出链表(像判空,计算长度,输出链表无增减操作用*L,具体的我暂时说不来) {      LinkList *p = L->next;      while(p != NULL)       {         printf("%d", p->data);         p = p->next;       }      printf("\n"); } int DeleteList(LinkList *L, int i, ElemType *e)// 删除操作:删除第i个元素,用&e(地址)来装删除的元素,可以知道删除了什么 {       int j = 0;       LinkList *p = L, *q;       while((j < i - 1) && (p != NULL))       {         j++;         p = p->next;       }       if(p == NULL)       {         return 0;       }       else       {         q = p->next;         if(q == NULL)           return 0;         e =&(q->data);         p->next = q->next;         free(q);         return 1;       } } void DestroyList(LinkList *L)//销毁链表 {      LinkList *p = L,*q = p->next;      while(q != NULL)                //重点×4        {          free(p);          //释放p(相当于C++的Delete)          p = q;          q = p->next;        }     free(p); } void main() {     LinkList *L;     ElemType e;     printf("(1)初始化单链表L\n");  IinkList(L);  printf("(2)依次采用尾插法插入a,b,c,d,e元素\n");  ElemType a[5]={'a','b','c','d','e'};  CreatListR_L(L, a, 5);  printf("(3)输出单链表:\n");  DispList(L);  printf("(4)输出单链表的长度:%d\n",ListLength_L(L));  printf("(5)单链表L为:%s\n",(ListEmpty_L(L) ? "空":"非空"));  GetElem_L(L, 2, e);  printf("(6)单链表L的第3个元素为%c\n",GetElem_L(L, 3, e));  printf("(7)元素a的位置为%d\n", LocateElem_L(L, 'a'));  printf("(8)在第4个元素位置上插入元素r\n");  LinkInsert_L(L, 4, 'r');  printf("(9)输出单链表L:\n");  DispList(L);  printf("(10)删除L的第3个元素\n");  DeleteList(L, 3, e);  printf("(9)输出单链表L:\n");  DispList(L);  printf("(12)释放单链表L\n");  DestroyList(L);  return 0; }  

回答 Kinidy
采纳率0%
2小时前
  • 3

    回答

  • 13

    浏览

        public SqlConnection GetConnectionString()         {                          SqlConnection con = new SqlConnection("server=localhost;database=Vate;uid=sa;pwd=123");          return con;     } 可以连接数据库;         public string GetConnectionString()         {             //string con = null;             con = "server=localhost;database=Vate;uid=sa;pwd=123";          return con;     } 出现SA不能登陆  

  • 2

    回答

  • 18

    浏览

使用数组char name[4][20]存储从键盘上输入的4个人的名字,输出其中最大的名字。

  • 1

    回答

  • 22

    浏览

1.使用字符数组char str[20];存储从键盘上输入的一个字符串: (1)将字符串 中的字母字符按以下规则进行更改: 'a'=>'z','B'=>'M',其他字符不变; (2)统计字符串中数字字符的个数。。 2.分别使用字符数组char s1[20]和char s2[20]存储从键盘上输入的两个字符串,将字符串s2插入到字符串s1的最前面。如: s1:"abc",s2:"xyzlmn",则插入后.s1:"xyzlmnabc"。. 3.使用数组char name[4][20]存储从键盘上输入的4个人的名字,输出其中最大的名字。 4.(选做)定义函数int add1toN(int N),函数返2+2+3+..+n)的值,设计测试程序。

  • 1

    回答

  • 12

    浏览

使用matlab实现指纹识别匹配的过程中遇到的问题 代码如下!!有偿!!! 出错 main (line 51)         sxy1(10,:)=cxy1(x,:);     sxy1(1,:)=cxy1(x,:);         sxy2(1,:)=cxy2(y,:);          c1=find_point(sxy1(1,1),sxy1(1,2),txy1,2);     c2=find_point(sxy2(1,1),sxy2(1,2),txy2,2);     sxy1(2,:)=c1(1,:);     sxy1(3,:)=c1(2,:);     sxy2(2,:)=c2(1,:);     sxy2(3,:)=c2(2,:);   sxy1(1,:)=cxy1(x,:);         sxy2(1,:)=cxy2(y,:);          c1=find_point(sxy1(1,1),sxy1(1,2),txy1,2);     c2=find_point(sxy2(1,1),sxy2(1,2),txy2,2);     sxy1(2,:)=c1(1,:);     sxy1(3,:)=c1(2,:);     sxy2(2,:)=c2(1,:);     sxy2(3,:)=c2(2,:);

  • 5

    回答

  • 37

    浏览

给定一个正整数N和一个由小写英文字母组成的长度N的字符串S。确定该字符串是否是某个字符串的两个副本的连接。也就是说,确定是否存在一个字符串T使S=T+T。如果S是某个字符串的两个副本的连接,则输出Yes;否则,直接输出No。 例如,输入6(回车)abcabc,输出Yes(回车)Let T=abc,and S=T+T。 或者输入4(回车)abac,输出No(回车)结束。

  • 1

    回答

  • 28

    浏览

   在动态库中获取环境变量总是溢出出错。。。。 求大神指导 if (getenv("HOME") == NULL) {       strcpy(syspath, "/home/test"); } else {       strcpy(syspath, getenv("HOME"));  } 不用getenv()没有问题,用了就废了  

  • 2

    回答

  • 9

    浏览

#include<stdio.h> int main() {     int n,i,j,t,m,k;     scanf("%d",n);     int a[n];          for(i=0;i<n;i++)     {         scanf("%d",&a[i]);     }          for(j=0;j<(n-1)/2;j++)     {         t=a[j];         k=n-j-1;         a[j]=a[k];         a[k]=t;     }          for(m=0;m<n;m++)     {         printf("%d",a[m]);             if(m<n-1)                 printf(" ");     }      }     

回答 qq_40163454
采纳率100%
4小时前
  • 0

    回答

  • 20

    浏览

颜色识别模块用的是TCS3200;程序录入到51单片机里面,先用51单片机循迹模块行走,然后到终点识别蓝色图案停止,注意这里应该将识别到的蓝色信号转换为数字信号0和1,我已经写出了循迹模块部分,剩下的颜色识别加上让小车停止完全不会。

  • 3

    回答

  • 18

    浏览

前三个条件都可满足 到第四个条件时我发现了不足,因为前三个条件都互相不影响,而第四个要求会被其他占用一些字符导致输出不完整,求路过的大佬可以指点指点  输入一串字符 条件一:输出一为小写字母和数字的总数和 条件二:输出二为大写字母的输出和 条件三:输出三为其他字符和数字总和 条件四:输入字符中ascii码值小于100的输出和

  • 1

    回答

  • 6

    浏览

我定义了空数组,想把数据存放到数组里为什么实现不了呢 #include <C8051F410.H> extern void Init_Device(void); int v; unsigned int i=0; unsigned int a[6]; void main(void) {          Init_Device();          while(1)         {             while(AD0INT==0);         } } void isr_adc0(void) interrupt INTERRUPT_ADC0_EOC {         AD0INT=0;             v=(int)ADC0H<<8;             v=v+ADC0L;       a[i]=v;         i++;       ADC0MX=ADC0MX+1;     if(i>=6)     {          i=0;          ADC0MX=0X10;     }      } 然后调试的时候,数组里没有数是为啥呢  

回答 YINknow
采纳率0%
5小时前
  • 0

    回答

  • 3

    浏览

#include <C8051F410.H> extern void Init_Device(void); int v; unsigned int i=0; int a[6]; void main(void) {          Init_Device();          while(1)         { //            AD0BUSY=1;             while(AD0INT==0);         } } void isr_adc0(void) interrupt INTERRUPT_ADC0_EOC {         AD0INT=0;             v=(int)ADC0H<<8;             v=v+ADC0L;       a[i]=v;         i++;       ADC0MX=ADC0MX+1;     if(i>=6)     {          i=0;          ADC0MX=0X10;     }     是我定义的空数组不对吗

回答 YINknow
采纳率0%
5小时前
  • 3

    回答

  • 29

    浏览

#include<stdio.h> #include<string.h> int main() { char str[40]; gets(str); int n=strlen(str),zimu=0,shuzi=0,kongge=0,qita=0,i; for(int i=0;i<n;i++) { if(str[i]<='z'&&str[i]>='a'||str[i]<='Z'&&str[i]>='A') zimu++; else if(str[i]<='9'&&str[i]>='0') shuzi++; else if(str[i]==32) kongge++; else qita++; } printf("zimu=%d\nshuzi=%d\nkongge=%d\nqita=%d\n",zimu,shuzi,kongge,qita); return 0; } 题目是: 统计字符串中字母、数字、空格和其他字符的个数。 输入格式: 在一行中输入长度不超过40的字符串。 输出格式: 第一行中输出“zimu=x“ 第二行中输出“shuzi=y“ 第三行中输出“kongge=z”, 第四行中输出“qita=m” 所有结果均原样输出,没有列宽控制。   为什么无法运行呢

  • 1

    回答

  • 9

    浏览

#include "apue.h" #include #include typedef int Myfunc(const char *, const struct stat *, int); static Myfunc myfunc; static int myftw(char *, Myfunc *); static int dopath(Myfunc *); static long nreg, ndir, nblk, nchr, nfifo, nslink, nsock, ndnr, ntot; int main(int argc, char *argv[]) { int ret; if (argc != 2) err_quit("usage: ftw "); ret = myftw(argv[1], myfunc); /* does it all */ ntot = nreg + ndir + nblk + nchr + nfifo + nslink + nsock + ndnr; if (ntot == 0) ntot = 1; /* avoid divide by 0; print 0 for all counts */ printf("regular files = %7ld, %5.2f %%\n", nreg, nreg*100.0/ntot); printf("directories = %7ld, %5.2f %%\n", ndir, ndir*100.0/ntot); printf("block special = %7ld, %5.2f %%\n", nblk, nblk*100.0/ntot); printf("char special = %7ld, %5.2f %%\n", nchr, nchr*100.0/ntot); printf("FIFOs = %7ld, %5.2f %%\n", nfifo, nfifo*100.0/ntot); printf("symbolic links = %7ld, %5.2f %%\n", nslink, nslink*100.0/ntot); printf("sockets = %7ld, %5.2f %%\n", nsock, nsock*100.0/ntot); printf("permission denied = %7ld, %5.2f %%\n", ndnr, ndnr*100.0/ntot); exit(ret); } #define FTW_F 1 /* file other than directory */ #define FTW_D 2 /* directory */ #define FTW_DNR 3 /* directory that can't be read */ #define FTW_NS 4 /* file that we can't stat */ static char *fullpath; /* contains full pathname for every file */ static size_t pathlen; static int /* we return whatever func() returns */ myftw(char *pathname, Myfunc *func) { // fullpath = path_alloc(&pathlen); /* malloc PATH_MAX+1 bytes */ fullpath = (char *)malloc((size_t) pathlen); /* ({Prog pathalloc}) */ if (pathlen <= strlen(pathname)) { pathlen = strlen(pathname) * 2; if ((fullpath = realloc(fullpath, pathlen)) == NULL) err_sys("realloc failed"); } strcpy(fullpath, pathname); return(dopath(func)); } static int dopath(Myfunc* func) { struct stat statbuf; struct dirent *dirp; DIR *dp; int ret, n; if (lstat(fullpath, &statbuf) < 0) /* stat error */ return(func(fullpath, &statbuf, FTW_NS)); if (S_ISDIR(statbuf.st_mode) == 0) /* not a directory */ return(func(fullpath, &statbuf, FTW_F)); /* * It's a directory. First call func() for the directory, * then process each filename in the directory. */ if ((ret = func(fullpath, &statbuf, FTW_D)) != 0) return(ret); n = strlen(fullpath); if (n + NAME_MAX + 2 > pathlen) { /* expand path buffer */ pathlen *= 2; if ((fullpath = realloc(fullpath, pathlen)) == NULL) err_sys("realloc failed"); } fullpath[n++] = '/'; fullpath[n] = 0; if ((dp = opendir(fullpath)) == NULL) /* can't read directory */ return(func(fullpath, &statbuf, FTW_DNR)); while ((dirp = readdir(dp)) != NULL) { if (strcmp(dirp->d_name, ".") == 0 || strcmp(dirp->d_name, "..") == 0) continue; /* ignore dot and dot-dot */ strcpy(&fullpath[n], dirp->d_name); /* append name after "/" */ if ((ret = dopath(func)) != 0) /* recursive */ break; /* time to leave */ } fullpath[n-1] = 0; /* erase everything from slash onward */ if (closedir(dp) < 0) err_ret("can't close directory %s", fullpath); return(ret); } static int myfunc(const char *pathname, const struct stat *statptr, int type) { switch (type) { case FTW_F: switch (statptr->st_mode & S_IFMT) { case S_IFREG: nreg++; break; case S_IFBLK: nblk++; break; case S_IFCHR: nchr++; break; case S_IFIFO: nfifo++; break; case S_IFLNK: nslink++; break; case S_IFSOCK: nsock++; break; case S_IFDIR: /* directories should have type = FTW_D */ err_dump("for S_IFDIR for %s", pathname); } break; case FTW_D: ndir++; break; case FTW_DNR: ndnr++; err_ret("can't read directory %s", pathname); break; case FTW_NS: err_ret("stat error for %s", pathname); break; default: err_dump("unknown type %d for pathname %s", type, pathname); } return(0); } 在Linux c的环境下,如何输出指定路径下所有size大于等于1mb的文件的名字,并在最后计算这些文件的数量和总大小? 基础代码是输出指定路径下文件type的比例,文体要求是在这个代码中进行更改。谢谢

  • 0

    回答

  • 15

    浏览

Build command failed. Error while executing process E:\SDK\cmake\3.6.4111459\bin\cmake.exe with arguments {--build E:\android\sdk\webrtcApi\.externalNativeBuild\cmake\debug\armeabi-v7a --target vvroom_peerconnection_jni} ninja: error: '../../../../../third_party/kuma/objs/android/release/local/armeabi-v7a/libkuma.a', needed by '../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libvvroom_peerconnection_jni.so', missing and no known rule to make it   有ndk

  • 1

    回答

  • 7

    浏览

/* USART1 init function */ void MX_USART1_UART_Init(void) {   /* USER CODE BEGIN USART1_Init 0 */   /* USER CODE END USART1_Init 0 */   /* USER CODE BEGIN USART1_Init 1 */   /* USER CODE END USART1_Init 1 */   huart1.Instance = USART1;   huart1.Init.BaudRate = 9600;   huart1.Init.WordLength = UART_WORDLENGTH_8B;   huart1.Init.StopBits = UART_STOPBITS_1;   huart1.Init.Parity = UART_PARITY_NONE;   huart1.Init.Mode = UART_MODE_TX_RX;   huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;   huart1.Init.OverSampling = UART_OVERSAMPLING_16;   if (HAL_UART_Init(&huart1) != HAL_OK)   {     Error_Handler();   }   /* USER CODE BEGIN USART1_Init 2 */   __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); // 此处为自己加入程序,CUBEMX重新生成依旧被清除                                                                                                      /* USER CODE END USART1_Init 2 */ }

  • 2

    回答

  • 17

    浏览

例如“长宽动画”,“深浅动画”,“旋转动画”,“移动动画”。本人比较笨,看人家说的不是很懂,求清晰一点的答案。

  • 4

    回答

  • 40

    浏览

void f ( int *p) { *p=5; } int main (void) { int a ,*p; a=10; p=&a; f(p); printf("%d",(*p)++); return 0; } 为什么(*p)++结果是5,而*p=*p+1结果是6

回答 FZY0000
采纳率0%
10小时前
  • 4

    回答

  • 24

    浏览

请教一下如下代码,为什么主函数中的free会出现段错误

回答 qq_42010270
采纳率50%
11小时前
  • 2

    回答

  • 22

    浏览

如题 结构体 typedef struct{ int id; char name[8]; char *cc; }record; //初始化结构体分配内存 record * test=(record *)malloc(sizeof(record)*1); //下面需要初始化 结构体成员 指针cc吗? //初始化成员 cc 分配内存 (*(test) ).cc =(char *)malloc(sizeof(char)*20); //结构体成员赋值 (*(test) ).id = 11; strcpy((*(test)).name,"abc"); strcpy((*(test)).cc,"test"); //这里成员cc 已经赋值  并且打印成员值正常 //printf("%s\n",(*(test)).cc);   我的疑问是 ,这个cc成员单独使用是没有问题的, 在使用结构体的时候是不正常 , 例如:将结构体写入到文件  write(fd,test,sizeof(record1)*1); //写入后去看文件 其他的值都是正常 ,  而结构体成员cc那个位置的数据是 乱码 //写入后的二进制文件内容 /* 0B 00 00 00 61 62 63 00  00 00 00 00 00 00 00 00  C0 A2 2C 01 00 00 00 00  00 00 00 00 00 00 00 00 */ //0B 是结构体成员id的值11,  结构体成员name的值是 61 62 63 即abc, //成员cc  这里的值 不对 而且每运行一次程序 对应位置的数据是变化的 //回到c程序 用结构体去读这个文件   结果也是读不出数据  //其他值正常 , 指针成员cc  %p打印显示是 指针 %s没有显示 空的, sizeof 显示8大小 //现在的疑问是  结构体里 成员是指针时    这个结构体要怎样用呢? 结构体成员指针有什么作用和功能? //自学c语言 刚接触结构体 ,这里不太明白  希望大神们讲解下 .谢谢    

回答 qq_41870875
采纳率0%
11小时前