关于#出错#的问题,如何解决?

img


生成成功 但一运行就这样这是哪儿出错了啊
下面是出错图
生成成功 但一运行就这样这是哪儿出错了啊
下面是出错图

img

因为 exe 才能直接运行,而 dll 只能等待调试
将 exe 的项目设置为启动项目即可。

说明mydll.lib是个64位的dll
你要把自己的工程也设置成64位才行

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7769330
  • 这篇博客也不错, 你可以看下输入一个正整型数,输出该数的位数,并逆序输出每位上的数字和逆序组成的整型数
  • 除此之外, 这篇博客: 使用指针方法实现字符串逆序存放后再输出;用指针方法编写一函数,实现两个字符串的比较中的 使用指针方法实现字符串逆序存放后再输出 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 编写程序:从键盘任意输入一个字符串,输出该字符串。然后,将该字符串逆序存放后再输出,要求用字符指针完成。(提示:逆序存放的函数接口:void invstr(char *s))

    #include<stdio.h>
    #include<string.h>
    void invstr(char *s)
    {
    	char b;
    	int len;
    	len=strlen(s); /*获取该字符串的长度*/ 
    	for(int i=0;i<len/2;i++){ /*该循环的目的是每次将字符串的头和尾换一下位置*/ 
    		b=*(s+i); /*字符串的第i个元素的地址暂时放到b里*/ 
    		*(s+i)=*(s+len-1-i); /*将字符串的倒数第i个元素换到第i个元素*/ 
    		*(s+len-1-i)=b; /*再将b存放的地址放回倒数第i个元素*/ 
    	}	
    }
    int main()
    {
    	char a[1000];
    	gets(a); /*输入字符串*/ 
    	printf("%s\n",a); /*正序输出一次*/ 
    	invstr(a); /*运行函数*/ 
    	printf("%s",a); /*逆序输出*/ 
     } 
    

    利用指针编程,用指针方法编写一函数,实现两个字符串的比较。编程点拨:即自己编写一个strcmp函数:strcmp(s1,s2),如果s1= s2,返回值为0,如果s1≠s2, 返回它们二者第一个不同字符的ASCII码差值(如"BOY"与"BAD", 第二个字母不同,"O"与"A"之差为79-65=14)。如果要s1>s2,则输出正值,如果s1<s2,则输出负值。

    #include<stdio.h>
    #include<string.h>
    void strcmp(char *s1,char *s2)
    {
    	int len,i=0,sum=0,lenmax;
    	lenmax = strlen(s1);
    	len = strlen(s2); 
    	if(lenmax < len){
    		lenmax = len;
    	}
    	for(i=0;i<lenmax and sum==0;i++){
    		if(*(s1+i) > *(s1+i)){
    			sum = *(s1+i) - *(s2+i);
    		}
    		if(*(s1+i) < *(s2+i)){
               sum = ( - (*(s1+i) - *(s2+i)));
    		}
    	}
    	printf("%d",sum);
    }
    int main()
    {
    	char s1[1000],s2[1000];
    	gets(s1);
    	gets(s2);
    	strcmp(s1,s2);
     } 
    
  • 您还可以看一下 吴刚老师的【吴刚大讲堂】电商品牌文案设计方法课程中的 文字的视觉化方法小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的参考资料,分别对每个问题进行解答:

    问题1:

    要解决出现错误后无法运行的问题,我们需要先查看错误信息。请提供具体的错误信息,以便我们更好地理解问题所在。

    问题2:

    根据提供的代码,可以看出这段代码是将一个输入的字符串进行逆序输出。代码中使用了gets()函数来获取输入的字符串,接着使用了strlen()函数来获取字符串的长度,然后使用一个for循环逆序输出字符串。

    解决方案:

    如果代码出错,一般是因为输入的字符串超出了数组的范围,导致内存访问越界。可以尝试对代码进行修改,将字符数组str的大小增大到能容纳输入字符串的最大长度,例如改为char str[1000];。然后重新编译和运行代码,看是否问题得到解决。

    问题3:

    根据提供的代码,可以看出这段代码是创建一个单链表,并输出链表的值与长度。

    解决方案:

    如果代码出错,一般是因为输入的数据格式有误,导致链表创建错误,或者链表创建后的输出不正确。

    1. 首先,检查输入数据的格式是否正确,按照题目所给的输入形式,使用空格分隔每个整数,以-1作为结束标志。确保输入的整数个数等于所指定的个数,并且以-1作为结尾。

    2. 然后检查链表的创建逻辑是否正确。在代码中,使用了create()函数来创建链表。这个函数遍历输入的整数,逐个创建链表节点,并且将新节点插入链表的开头。要注意的是,创建链表节点时需要动态分配内存,并且在每次创建完节点后,需要将新节点的next指针指向链表的头节点,然后将链表的头指针指向新节点。

    3. 最后,检查链表的输出逻辑是否正确。在代码中,使用了out()函数来输出链表的值。这个函数遍历链表的每个节点,逐个输出节点的数据。要注意的是,输出节点时需要按照要求输出一个空格作为分隔符。

    运行代码时,请注意检查输入的整数个数和整数之间的分隔符是否符合要求,以及输出的链表值和长度是否正确。

    问题4:

    根据提供的代码,可以看出这段代码是统计一组无序整数中出现次数最多的整数及其出现次数。

    解决方案:

    如果代码出错,一般是因为输入数据的格式有误,导致无法正确统计出现次数最多的整数。

    1. 首先,检查输入数据的格式是否正确。按照题目所给的输入形式,首先输入整数的个数,然后在下一行输入这些整数,使用空格分隔每个整数。

    2. 然后,检查代码中对输入数据的处理是否正确。在代码中,使用了一个integer数组a[]来存储输入的整数,然后进行冒泡排序,将整数按照升序排列。之后,使用两个数组b[]c[]来分别存储每个整数出现的次数和结束索引。最后,遍历b[]数组,找到出现次数最多的整数,并输出。

    运行代码时,请注意检查输入的整数个数和整数之间的分隔符是否符合要求,以及输出的出现次数最多的整数和次数是否正确。