qq_43414873的博客

私信 关注
小白小白你好菜
码龄2年

咸鱼划水中,有自我整理的,有试验后发现无错转载的。。。不管是哪一种,给大家方便的同时顺便自己学习东西!

  • 991
    被访问量
  • 4
    原创文章
  • 666,622
    作者排名
  • 11
    粉丝数量
  • 于 2018-10-14 加入CSDN
获得成就
  • 获得13次点赞
  • 内容获得9次评论
  • 获得5次收藏
荣誉勋章
TA的专栏
  • C语言复习
    3篇
  • 计算机四级-网络工程师
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅
#include<stdio.h>
#include<string.h>
int main(){
	char a[6] = {0};
	char b[3] = {0};
	int flag;
	int count = 0;
	scanf("%s", a);
	scanf("%s", b);
	for(int i = 0; i < strlen(a); i++){
		flag = 0;
		for(int j = 0; j < strlen(b); j++)
			if(a[i] == b[j]){
				flag = 1;
				break;
			}
		if(flag == 0){
			count++;
			printf("%c", a[i]);
		}	
	}
	if(count == 0)
		printf("0");
	return 0;
}

回答的问题 #C语言编程,函数计算
回答了问题于 2 天前

主要就是你的当前栈顶所在位置和头结点位置你没搞清楚。

4 4 3 2 1 头结点 NULL

你当前栈顶在4, l->next指向第二个4

所以你的代码里面顺序输出时 4 3 2 1 头结点。把第一个4跳过了。我只能解释到这了。要靠你自己想明白了

回答的问题 #C语言反向输出链表.
回答了问题于 3 天前

这种是保留头结点的做法。

void RecursiveReverse(Node**headRef){
	Node *p = *headRef;
	Node *q;
	*headRef = NULL;
	while(p->next != NULL){
		q = p->next;
		p->next = *headRef;
		*headRef = p;
		p = q;
	}
	p->next = *headRef;
	*headRef = p;
}
 
void printQueue(Node* l){
    while(l->next != NULL){//
    	l = l->next;
        printf("data is %d\n", l->data);
    }
    printf("\n");
}

 

回答的问题 #C语言反向输出链表.
回答了问题于 3 天前

回答的问题 #C语言反向输出链表.
回答了问题于 3 天前

改好了,题主可以看一下,栈逆置有点特殊

#include <stdio.h>
#include "string.h"
#include "stdlib.h"
typedef struct node {
    int data;
    struct node* next;
}Node;

void Push(Node**headRef, int newData){
 
 
    Node *head = *headRef;
    struct node *newn = (Node *)malloc(sizeof(struct node)); //
    newn->data = newData;
    newn->next = head;
    head = newn;
    *headRef = head;
}


void RecursiveReverse(Node**headRef){
	Node *p = *headRef;
	Node *q;
	*headRef = NULL;
	while(p->next->next != NULL){
		q = p->next;
		p->next = *headRef;
		*headRef = p;
		p = q;
	}
	p->next = *headRef;
	*headRef = p;
}
 
void printQueue(Node* l){
    while(l != NULL){//
        printf("data is %d\n", l->data);
        l = l->next;
    }
    printf("\n");
}

int main() {
    struct node *newn = (Node *)malloc(sizeof(struct node));
    newn->next = NULL;
    Push(&newn, 1);
    Push(&newn, 2);
    Push(&newn, 3);
    Push(&newn, 4);
    Push(&newn, 4);
    RecursiveReverse(&newn);//?
    printQueue(newn);
    return 0;
}
 

 

回答的问题 #C语言反向输出链表.
回答了问题于 3 天前

C++是先编译后执行,不是边编译边执行。

局部变量是放在栈区,就是动态存储区,就在编译时分配内存,所以你要指定内存大小,数组的长度只能是常量表达式,不能是变量。#define maxsize 10这种不算变量,因为#define实在编译之前就替换了相关数据,即预编译处理阶段。

全局变量和静态局部变量放在静态存储区,静态存储区是运行期间始终占用固定的内存单元。

其中malloc函数相关,暂时不分配内存,是手动申请内存并手动释放内存。

(可能表述有些不清楚,但是是这么规定的,但是有些编译器比如Devc++又对这种情况不报错,属于特例。。。)

回答的问题 #C++——为什么变量不能作为数组长度?
回答了问题于 3 天前

没看懂你想知道什么。。。

回答的问题 #java方法的调用,各位大佬帮看看,最后方法调用输出,求详解,详解
回答了问题于 4 天前

ListNode listNode中你的数据类型为ListNode,这个类型是你自己通过基本数据类型复合而来,可以看做和int/float等类型相同。

int a和ListNode a本质是一样的,都是定义了一个变量并且系统为他分配了内存,这个a和系统分配的地址已经绑定,无法改变。

l=(ListNode)malloc(sizeof(ListNode))这句,我是觉得有些问题的,当然,不是说不能用,malloc左右两边的类型一致,表明你的l是ListNode l这样定义的,在你定义的时候系统已经分配内存了,再去申请内存似乎没有必要。

用malloc函数的情况通常为 ListNode *l = (ListNode *)malloc(sizeof(ListNode))这样用的。因为光定义指针就只相当于你给一个指针起了个名字,这个指针指向的类型为ListNode。你申请内存,然后系统给了你一个地址,你的这个指针指向这个地址,以后,你的这个指针还可以指向其他的地址。上面那种定义是名字和地址绑定了,不可改变。

malloc函数常用于指针类型的内存申请,系统分配内存,让指针指向这个内存所在的地址

回答的问题 #如图 c语言简单问题 谢谢
回答了问题于 4 天前

首先对pIsrIn->buf进行uint8_t *类型强制转换,将转换值赋给pBufIn

shmemDev->isr |= pBufIn[pIsrIn->bufRdPtr & (pIsrIn->bufLen - 1U)]这个语句中间的运算符是|=,是一个复合运算符,先不看。

先看右边,右边有个[]括号,先看括号里面的,大括号里面的是pIsrIn->bufRdPtr & (pIsrIn->bufLen - 1U),&是按位与运算符,即将左右两个值进行按位与运算(具体怎么运算题主自行百度吧),然后将所得的结果作为pBufln的下标,相当于数组里面的a[1]这种。

复合运算符右边算完了,再把运算符拆开来看,就是shmemDev->isr = shmemDev->isr | pBufln[前面的结果],即将两个值进行或运算,再把结果赋给shmemDev->isr。

复合运算符的实质就是a += b 即 a = a + (b)

回答的问题 #理解c代码,下面这条语句?
回答了问题于 4 天前

这样?

#include<iostream>
#include<string.h>
using namespace std;

int count(string a){
	int num = 0;
	for(int i = 0; a[i] != '\0' ; i++){
		if(a[i] == '1')
			num++;
	}
	return num;
}

int main(){
	string k = "12332111111111";
	cout<<count(k)<<endl; 
}

 

回答的问题 #C++ sting类型函数统计个数
回答了问题于 4 天前

https://blog.csdn.net/qq_43309823/article/details/95386759

回答的问题 #c语言程序基础.......
回答了问题于 5 天前

https://blog.csdn.net/qq_26286193/article/details/80216479?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

回答的问题 #C语言中n辆列车, 顺序开入栈式结构的站台, 则可能的出栈序列有多少种?
回答了问题于 5 天前

题主还是自己多尝试一下再来问

回答的问题 #姓名和年龄对排序C语言
回答了问题于 5 天前
#include<iostream>
#include<algorithm>
using namespace std;

typedef struct student{
	int age;
	char name[20];
}Stu;

bool cmp(Stu a, Stu b){
	if(a.age == b.age)
		return a.name < b.name;
	return a.age < b.age;
}

int main(){
	Stu stu[5];
	for(int i = 0; i < 5; i++)
		cin >> stu[i].name;
	for(int i = 0; i < 5; i++)
		cin >> stu[i].age;
	sort(stu, stu+5, cmp);
	for(int i = 0; i < 5; i++)
		cout << "(" << stu[i].name << "," << stu[i].age << ")" << endl;
	return 0;
}

 

回答的问题 #姓名和年龄对排序C语言
回答了问题于 5 天前

就改了一下你的create函数

#include<stdio.h>
#include<malloc.h>
typedef struct Polynode
{
	int coef;
	int exf;
	struct Polynode *next;
}*Polylist;

void Init(Polylist *l)
{
	*l =(Polylist)malloc(sizeof(Polynode));
	(*l)->next = NULL;
}

void Creat(Polylist l)
{
	Polynode *r,*s;
	r = l;
	int c,e;
	scanf("%d%d",&c,&e);
	while(c != 0)
	{
		s = (Polynode*)malloc(sizeof(Polynode));
		s->coef = c;
		s->exf = e;
		s->next = NULL;
		r->next = s;
		r = s;
		scanf("%d%d",&c,&e);
	}
}

void Printf(Polylist l)
{
	Polynode *p = l->next;
	while(p != NULL)
	{
		printf("%d %d\n", p->coef, p->exf);
		p = p->next;}
}
int main()
{
	Polylist l;
	Init(&l);
	Creat(l);
	Printf(l);
	return 0;
}

 

回答的问题 #为什么链表能输入但没有输出
回答了问题于 5 天前

你是想循环链表还是头插法链表或者尾插法链表?

回答的问题 #为什么链表能输入但没有输出
回答了问题于 5 天前

或者

#include<iostream>
using namespace std;
int main()
{
    for(int i = 1; i <= 100; i++){
    	if((i%3 == 0 && i%7 != 0) || (i%7 == 0 && i%3 != 0))
    		cout<<i<<endl;
	} 
}

 

回答的问题 #新手想问下:用C++求100以内能被3整除或者能被7整除但不能同时被3和7整除的数。 这该怎么做
回答了问题于 5 天前
#include<iostream>
using namespace std;
int main()
{
    for(int i = 1; i <= 100; i++){
    	if((i % 3 == 0 || i % 7 == 0) && i%21 != 0)
    		cout<<i<<endl;
	} 
}

 

回答的问题 #新手想问下:用C++求100以内能被3整除或者能被7整除但不能同时被3和7整除的数。 这该怎么做
回答了问题于 5 天前
if(var1 == 1)
    return 1;
else
    return var1*fac(var-1);

 

回答的问题 #请问应该如何补充代码啊?
回答了问题于 5 天前

指向的是这个字符串的地址。但是只针对于你的元素是char *类型

char a[3];

scanf("%s", a);

printf("%s", a);

你这里的a就是地址啊,你输出的时候就是告诉这个函数你的地址是多少,然后他把这个地址上的东西输出来

这里仅对char *类型,即字符串类型成立,单个字符或者其他的,都不成立

刚好你的name字符组的元素是字符串类型

(个人见解)

回答的问题 #C++指向字符串的指针,指向的到底是什么?
回答了问题于 5 天前

你这里,ptr是一个指针数组,ptr就是数组的名字。

你直接输出ptr相当于输出数组首元素的地址

输出&ptr相当于输出整个数组的地址

首元素的地址和整个数组的地址是一样的

你直接int a=3;   int *p=&a;   cout<<p<<endl;    cout<<&p<<endl;这才会是不一样的值

回答的问题 #C++指向指针的指针的地址,为什么和指向指针的地址一样?
回答了问题于 5 天前

我找了半个小时,终于找到这个题目了

#include<stdio.h>
#include<math.h> 
int main(){
	double x, y = 1;
	scanf("%lf", &x);
	double sum = 0, temp;
	int flag = -1;
	for(int i = 1; ; i++){
		flag *= -1;
		temp = pow(x,2*i-1);
		if(i > 1)
			y = y*(2*i-2)*(2*i-1);
		if(temp/y < 0.000001)
			break;
		sum += flag*temp/y;
	}
	printf("%0.5lf", sum);
}

 

回答的问题 #这个程序怎么优化啊,时间超限了?
回答了问题于 5 天前
#include<stdio.h>
#include<math.h> 
int main(){
	double x, y = 1;
	scanf("%lf", &x);
	double sum = 0, temp;
	int flag = -1;
	for(int i = 1; ; i++){
		flag *= -1;
		temp = pow(x,2*i-1);
		if(i > 1)
			y = y*(2*i-2)*(2*i-1);
		if(temp/y < 0.000001)
			break;
		sum += flag*temp/y;
	}
	printf("%0.5lf", sum);
}

 

回答的问题 #求c++大佬指点!!!
回答了问题于 5 天前

Devc++吧,不用配置,又方便操作

回答的问题 #学C语言需要下载什么?
回答了问题于 5 天前

你的68行少了一个},你只有if的{,没有}。

你的LocateElem_Sq函数也有问题,最后比较应该是i和L.length比较。

代码应该如下:

void LocateElem_Sq(SqList L, ElemType e)
{
    int i;
    for(i=0;i<=L.size-1;i++) {
         if(L.data[i]==e){
             printf("元素%d的位置序号是%d\n",e,i+1);
             break;
         }    
    }
    if(i >=L.length){
          printf("元素%d不存在\n",e);
    }
}

回答的问题 #数据结构 程序显示出错 怎么改呢??
回答了问题于 6 天前

我去年装的时候也碰到过,但是网址找不到了。你可以看看这个:

https://blog.csdn.net/qq_43524683/article/details/89061448

回答的问题 #安装MySQL时遇到的问题,我看了一下日志,也在网上看了很多教程,实在不会搞了,抱着试试的心态问问吧
回答了问题于 6 天前

你的printf里面,输出格式里面没有b2的输出,输出格式有8个,但是你后面的变量写了9个,你把后面的b2去掉就行,或者在前面加上对b2的格式输出b2 = %.2lf

回答的问题 #为什么我这个a5 a6 最后求得的值不对?哪里写错了?(对照那个ASCII表)
回答了问题于 6 天前

a5 = 65, a6 = 97,你的输出是多少?

回答的问题 #为什么我这个a5 a6 最后求得的值不对?哪里写错了?(对照那个ASCII表)
回答了问题于 6 天前

每使用一次fget()函数,文件指针后移

回答的问题 #为什么不能使用while((fgetc(fp)!=EOF)进行文件复制?
回答了问题于 6 天前
products = [["iphone",6888],["MacPro",14800],["小米6",4991],["Ofee",31],["Book",60],["Nike",699]]
print("------\t商品列表\t------")
for i,item in enumerate(products):
    print(i,'', item[0], "\t", item[1])

 

回答的问题 #Python的列对齐
回答了问题于 6 天前

回答的问题 #Python的列对齐
回答了问题于 6 天前

你的程序没有问题。你考不考虑a[i]=0都没有关系。

第二个for循环的代码运行顺序是:

首先k = 1,然后判断 k 和 a[i]的大小,如果判断的值为真时,即k<=a[i]时才会执行循环体。当你的a[i] = 0时,k<=0不成立,就不执行下面的循环体了呗,所以根本就没有0 % 0 = 0的误判

当为真的时候执行循环体,循环体执行一次然后k++,然后k继续和a[i]比较,所以这个程序写的没有问题

回答的问题 #这里我没有考虑a[i]可能等于0,但是为什么程序运行下去了?(第二个for循环那里)
回答了问题于 6 天前

字符组越界了,不过不是删{},{}对你字符组无影响。

在C语言中,字符串后面会自动接字符串结束符'\0',所以你的name字符组实际上是'j'   'h'   'u'  's'  't'  'i'  'n'  '\0'总共8个字符

address字符组实际上是'a'  'b'  'c'  'd'  'e'  'f'  'g'   'h'  'i'  'j'   '\0'总共11个字符,所以你在定义的时候应该定义字符组大小为8和11。

只有在字符串后面才会自动接'\0'!!!你单个输入字符作为字符组元素是不会接'\0'的。

你可以用sizeof("jhustin")输出,他的值应该是8,因为sizeof()读取的是实际占的内存大小

strlen("jhustin")输出的是7,因为strlen()函数返回的是'\0'之前的所有字符数量

回答的问题 #为什么输出会是这样?
回答了问题于 7 天前

你有10个随机值,而且你是顺序排序,按照从小到大排序。

假如你的随机值为10 9 8 7 6 5 4 3 2 1

你的两层for循环嵌套那里,看i的循环,你的i = 9的时候不就是最后一个元素了吗?然后这个时候系统检测你的i+1超过了数组的有效下标,你只要在比较大小的循环那里,把i < 10改成 i <9即可

回答的问题 #请问“Index 10 out of bounds for length 10”怎么解决?
回答了问题于 7 天前

do循环是个什么循环?我只听过do...while和while或者for循环

回答的问题 #c语言分别用do循环和do……while循环,编写程序,输出1-1000之间,能被7整除的数。
回答了问题于 7 天前

#include<stdio.h>
#include<stdlib.h>
typedef struct node{
    int data;
    struct node* next;
}Node, *LinkList;

void InitList(LinkList *L);//初始化空链表
int LengthList(LinkList L);//求链表长度
void TailList(LinkList L);//尾插法建立链表数据
void HeadList(LinkList L);//头插法建立链表数据
int GetData(LinkList L, int i);//获得第i个位置的数据
int GetLocate(LinkList L, int data);//查找第一次出现数据data的位置
void InsList(LinkList L, int i, int data);//在第i个位置插入数据data
void DelList(LinkList L, int i);//删除第i个元素
void DestroyList(LinkList L);//销毁链表L
bool EmptyList(LinkList L);//判断是否为空 
void PrintList(LinkList L);//打印链表L
LinkList MergeLinkList(LinkList A, LinkList B);//按从小到大合并链表A,B

int main(){
    LinkList head, linkB;
    int i, data;
    InitList(&head);//head初始化 
    InitList(&linkB);//linkB初始化 
    TailList(head);//尾插法建立链表head
    HeadList(linkB);//头插法建立链表linkB
    printf("尾插法链表如下,长度为%d:\n", LengthList(head)); 
    PrintList(head);//打印链表head
    printf("头插法链表如下,长度为%d:\n", LengthList(linkB));
    PrintList(linkB);
    printf("请输入想查看链表head数据的位置:\n");
    scanf("%d", &i);
    printf("head链表中第i个位置数据为:%d\n", GetData(head, i));
    printf("请输入想查看链表head的数据:\n");
    scanf("%d", &data);
    printf("head链表中数据为data的第一个位置为:%d\n", GetLocate(head, data)); 
    printf("请输入插入位置以及数据:\n");
    scanf("%d %d", &i, &data);
    InsList(head, i, data);
    PrintList(head);
    printf("请输入想删除的数据位置:\n");
    scanf("%d", &i);
    DelList(head, i);
    PrintList(head);
    head = MergeLinkList(head, linkB);
    PrintList(head);
    DestroyList(head);
    PrintList(head);
}

void InitList(LinkList *L){//初始化空链表
    *L = (LinkList)malloc(sizeof(Node));
    (*L)->next = NULL;
}

void TailList(LinkList L){//尾插法建立链表 
    Node *r, *temp;
    r = L;
    int data;
    printf("尾插法建立链表,-1结束\n");
    scanf("%d", &data);
    while(data != -1){
        temp = (Node *)malloc(sizeof(Node));
        temp->data = data;
        r->next = temp;
        r = temp;
        scanf("%d", &data);
    }
    r->next = NULL;
}

void HeadList(LinkList L){//头插法建立链表 
    Node *h, *temp;
    h = L;
    int data;
    printf("头插法建立链表,-2结束\n");
    scanf("%d", &data);
    while(data != -2){
        temp = (Node *)malloc(sizeof(Node));
        temp->data = data;
        temp->next = h->next;
        h->next = temp;
        scanf("%d", &data);
    }
}

int LengthList(LinkList L){//返回链表长度,不包括头结点 
    Node *p = L->next;
    int length = 0;
    if(EmptyList(L))
        printf("空链表!求长错误!\n");
    else
        while(p != NULL){
            length++;
            p = p->next;
        }
    return length;
}

bool EmptyList(LinkList L){//判断单链表是否为空 
    Node *p = L;
    if(L->next == NULL)
        return true;
    else
        return false;
}

int GetData(LinkList L, int i){//获得第i个位置的数据
    Node *p = L->next;
    int locate = 1;
    int data = -1;
    if(i <= 0 || i > LengthList(L))
        printf("位置不在链表范围!\n");
    else{
        while(p != NULL){
            if(locate == i){
                data = p->data;
                break;
            }else{
                p = p->next;
                locate++;
            }
        }
    }
    return data;
} 

int GetLocate(LinkList L, int data){//找第一次出现数据data的位置
    int i = 1, locate = -1;
    Node *p = L->next;
    while(p != NULL){
        if(p->data != data){
            i++;
            p = p->next;
        }else{
            locate = i;
            break;
        }
    }
    if(p == NULL)
        printf("该数据未在此链表中出现!\n");
    return locate;
}

void InsList(LinkList L, int i, int data){//在第i个位置插入数据data
    Node *pre = L, *tmp;
    int k = 0;
    if(i <= 0 || i > LengthList(L)+1)
        printf("插入位置异常,插入操作无效!\n");
    else{
        while(k++ < i-1)
            pre = pre->next;
        tmp = (Node *)malloc(sizeof(Node));
        tmp->data = data;
        tmp->next = pre->next;
        pre->next = tmp;
    }
}

void DelList(LinkList L, int i){//删除第i个元素
    Node *pre = L, *tmp;
    int k = 0;
    if(i <= 0 || i > LengthList(L))
        printf("删除位置异常,删除操作无效!\n");
    else{
        while(k++ < i-1)
            pre = pre->next;
        tmp = pre->next;
        pre->next = tmp->next;
        free(tmp);
    }
}

void PrintList(LinkList L){//打印链表L 
    if(EmptyList(L)){
        printf("此链表为空!\n");
    }else{
        Node *p = L->next;
        while(p != NULL){
            printf("%d ", p->data);
            p = p->next;
        }
        printf("\n");
    }
}

LinkList MergeLinkList(LinkList A, LinkList B){//按从小到大合并链表A,B
    Node *pa, *pb;
    LinkList C, r;
    pa = A->next;
    pb = B->next;
    r = C = A;
    while(pa != NULL && pb != NULL)
        if(pa->data < pb->data){
            C->next = pa;
            C = pa;
            pa = pa->next;
        }else{
            C->next = pb;
            C = pb;
            pb = pb->next;
        }
    if(pa != NULL)
        C->next = pa;
    else
        C->next = pb;
    free(B);
    return r;
}

void DestroyList(LinkList L){//销毁链表L
    L->next = NULL;
}

回答的问题 #数据结构c,这个怎么调用creatListR那个函数网里面输入东西啊
回答了问题于 7 天前

你的creat函数里面都没有用到你的形参,你没发现吗?你的形参就是摆设,既然没用到,那么就没有内存空间,那你的print函数里面不就相当于传了个NULL进去?

回答的问题 #为什么结构体指针变量地址出现问题
回答了问题于 7 天前

#include<stdio.h>
int main(){
    int num;
    scanf("%d", &num);
    for(int i = 0; i < 3; i++){
        printf("%d", num%10);
        num /= 10;
    }
    return 0;
}

回答的问题 #c语言倒序输出,中间的怎么写代码?
回答了问题于 7 天前

你用的是头插法,你的存储顺序和你的插入顺序相反。你每次插入的位置都是1,就把前面插入的元素挤到后面去了,即98行。按你本来想顺序存储的想法来的话应该是InsList(&L,i+1,stu[i]);,这样你的元素就会和插入顺序一致

为什么你前面的输出时对的呢?因为你输出的是stu[]数组的元素,你的输出和你的线性表一点关系都没有。你的GetData的确调用了,可是这个函数的返回值你并没有做任何处理。即101行和102行

你的删除函数没有问题,删除的是第三个元素,只是你以为你的第三个元素是c罢了。

你最后的输出也是一样的,跟你的线性表无关,没有对返回值做任何处理。

回答的问题 #c语言实现的顺序存储的线性表删除元素出现错误
回答了问题于 8 天前

我仔细看了一下你的代码,如果我没理解错的话,你应该是选择排序,而且是从小到大排序。

你写错的是223行和224行,我觉得你可能是不小心写错了,但是自己没有检查出来。

你的s = q,q都没有指向任何变量怎么会有值呢?你的s应该等于p,当第一次循环结束,跟随p用第二个数据去跟后面的比较并记录地址。q应该等于p->next即本次循环的第二个位置,如果s和q是同一个位置,就没有比较的必要了。。。

还有就是,题主去看看微软的C语言格式规范吧,答主看代码看的心里发麻,上面的代码是整理后的格式。无误请点采纳!

回答的问题 #数据结构 单链表排序出错,其他都正常,用if写的
回答了问题于 8 天前

括号不是多次一举。

在你的执行体语句数量超过1句时,就必须用括号括起来,只有在括号里面的语句才受到前面判断值的影响。

当你的语句为1句时,可以省略括号,并不是说没有用了,这里是省略,不是去除!

当你的语句为0句时,if后面接的就是分号;了,这种基本没啥意义。但是你可能用在循环中,比如for(int i = 0; a[i] != '\0'; i++);像这里就是为了统计字符串的长度,后面没有什么语句要跟着,直接用分号即可

回答的问题 #关于if后加两个大括号
回答了问题于 8 天前

或者这样?

回答的问题 #C或者C++语言怎么接收分行输入数字,最后一行以回车结束的输入呢?
回答了问题于 8 天前

一种是直接scanf读取换行或者空格符解决,以下供参考

回答的问题 #C或者C++语言怎么接收分行输入数字,最后一行以回车结束的输入呢?
回答了问题于 8 天前

你这不会报错?char *p = &a居然不报错?两个类型都不一样。

指针的所占内存的大小与你的操作系统有关。 你这里很明显是32位操作系统,指针所占内存大小就是操作系统的位数,32位即4字节,你这里的int类型应该为2字节。64位操作系统上面指针大小为8字节,int类型为4字节

回答的问题 #计算机数据存储的方式
回答了问题于 10 天前

我只想知道你的代码是想干什么,看的我云里雾里

回答的问题 #c++数组在显示后才会使程序运行成功
回答了问题于 11 天前

400万以内是指值,不是指项数吧?

回答的问题 #有一个数列,a1=1,a2=2,a3=a2+a1,以此类推,求四百万以内偶数项的和?
回答了问题于 12 天前
#include<stdio.h>
#define n 4000000
int main()
{
	long long an1 = 1;
	long long an2 = 2;
	long long an3;
	double sum = 2;
	for(int i = 3; ; i++)
	{
		an3 = an1 + an2;
		if(an3 > 4000000)
			break;
		an1 = an2;
		an2 = an3;
		if(i % 2 == 0)
			sum = sum + an3;
	}
	printf("%.0lf\n",sum);
	return 0;
} 

 

回答的问题 #有一个数列,a1=1,a2=2,a3=a2+a1,以此类推,求四百万以内偶数项的和?
回答了问题于 12 天前

首先,你的最大总分比较有问题,应该把max = stu[i].S和j=i一起放在if中,你少了{},然后,是sum/30,sum/10只是每个人的平均总成绩,而不是每个人的平均成绩,再然后,你的最后输出分数数组时单独输出,没有把整个数组输出

回答的问题 #R7-10 使用结构体数组求10个学生三门课总平均成绩,及最高分学生信息;如何用C++实现?
回答了问题于 12 天前
#include<iostream>
#include<iomanip>
using namespace std;

struct student
{
    char num[6];
    char name[8];
    double score[3];
    double S;
}stu[10];

int main()
{
    //void input(struct Student stu[]);
    double sum = 0;
    for(int i = 0; i < 10; i++)
    {
        cin >> stu[i].num >> stu[i].name;//分别输入学号,名字
        for(int j = 0; j < 3; j++)
        {
            cin >> stu[i].score[j];//输入成绩
            sum += stu[i].score[j];//所有人总分
            stu[i].S += stu[i].score[j];//单人三科总成绩
        }
    }
    int j = 0;
    int max = stu[0].S;
    for(int i = 1; i < 10; i++)
    {
        if(stu[i].S > max){
        	max = stu[i].S;
			j = i;
		} 
    }
    printf("%.2lf\n", sum/30);
    printf("%s %s %.2lf %.2lf %.2lf\n", stu[j].num, stu[j].name, stu[j].score[0], stu[j].score[1], stu[j].score[2]);
    return 0;
}

 

回答的问题 #R7-10 使用结构体数组求10个学生三门课总平均成绩,及最高分学生信息;如何用C++实现?
回答了问题于 12 天前

scanf("%c", &s[i]);

回答的问题 #L1-054 福到了,关于输出异常的问题
回答了问题于 12 天前

循环太多,系统卡死

#include <stdio.h>

int b[10] = {0, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};

int main(){
    int x, sum = 0, a;
    for(int j = 1; j <= 100000; j++){
        sum = 0; 
        a = j;
        while(j != 0){
            x = j % 10;
            j /= 10;
            sum += b[x];
        }
        j = a;
        if(sum == a){
            printf("%d ", j);
        }
    }
    return 0;
} 

回答的问题 #一个编程题目,想了一晚上不知道错在哪里,求大佬指点!!!
回答了问题于 12 天前

你去百度c++函数unique的使用

回答的问题 #怎么用c语言删除一个txt文件中重复的单词 并生成列表?
回答了问题于 12 天前

就目前来看,如果你没有设定其他的特定结束符,就只能用:

sizeof函数求占内存长度/sizeof单位类型

这里的sizeof函数并不是根据你的值进行判断,而是根据转化后的类型的总共所占长度计算的结果,这跟strlen不一样,strlen是读到'\0'就结束了

回答的问题 #关于C++ 字符数组如何判断结束的问题
回答了问题于 12 天前

如果你的数组大小是指定的,而且和数据元素个数相等的话,用int count = sizeof(sizeof(arr)/sizeof(char))就可以记录元素个数了,用strlen不行,读到空就中断了

回答的问题 #关于C++ 字符数组如何判断结束的问题
回答了问题于 13 天前

你传的实参是&类型,即地址类型,形参是数据类型,类型不匹配且无法转化,系统在你调用这个函数的地方报错,没毛病。

系统看来,你的自定义函数没有问题,但是你的调用产生问题,所以在那行报错,4707应该就是类型不匹配

回答的问题 #C语言 有关C4704警告的提问(小白)求大神解答一下!
回答了问题于 13 天前
#include<stdio.h>
#include<math.h>
#include<string.h>
int jinzhi(int n, char a[]);
int main(void)
{
    char a[7] = {0};
	char b[7] = {0};
	char c[7] = {0};
    int n;
    int z;
    scanf("%d",&n);
    for(int i = 0; i < n; i++)
    {
    	int flag = 0;
        scanf("%s", a);
        scanf("%s", b);
        scanf("%s", c);
        for(z = 2; z <= 16; z++)
        {
        	int m = 0, j;
        	for(j = 0; a[j] != '\0'; j++)//进制不符 
    			if((a[j]-'0') >= z)
					m++;
    		for(j = 0; b[j] != '\0'; j++)//进制不符 
    			if((b[j]-'0') >= z)
    				m++;
    		for(j = 0; c[j] != '\0'; j++)//进制不符 
    			if((c[j]-'0') >= z)
    				m++;
            if(m == 0 && jinzhi(z,c) == jinzhi(z,b) * jinzhi(z,a)){
            	flag = z;
				break;
			}
        }
        printf("%d\n", flag);
    }
}
int jinzhi(int n, char a[])
{
    int i, j = 0;
    int c = 0;
    for(i = strlen(a)-1; i >= 0; i--, c++)
    {
        j += pow(n,c) * (a[i] - '0');
    }
    return j;
}

 

回答的问题 #expected primary-expression before ']' token
回答了问题于 16 天前

 if(*pa<pc)fun2(pa,pb);----->if(*pa<*pc)fun2(pa,pb);

回答的问题 #运行不出是哪里错误了
回答了问题于 17 天前

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

void func(int* p1, int* p2, int** s)
{
    *s = (int*)malloc(sizeof(int));
    **s = *p1 + *(p2++);
}

int main()
{
    int a[2] = { 1,2 };
    int b[2] = { 10,20 };
    int *s = a;
    func(a, b, &s);
    printf("%d\n",*s);
    return 0;
}

回答的问题 #C中的动态申请函数malloc的使用
回答了问题于 17 天前

回答的问题 #c++螺旋矩形输入大于10输出就有错误,求大佬指点
回答了问题于 20 天前

  

#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 
	int N, i, j, n, num = 1; 
	scanf("%d", &N); 
	int a[N][N] = {0};
   	for(n = 0; n <= N/2; n++) 
   	{ 
     	for(j = n; j <= N-n-1; j++) 
     	a[n][j] = num++; 
       
     	for(i = n+1; i < N-n-1; i++) 
     	a[i][N-n-1] = num++; 
       
     	for(j = N-n-1;j > n; j--) 
     	a[N-n-1][j] = num++; 
       
     	for(i = N-n-1; i > n; i--) 
     	a[i][n] = num++; 
   	}   
   	//输出螺旋矩阵  
   	for(i = 0; i < N; i++) 
   	{ 
     	for(j = 0; j < N; j++) 
     	printf("%3d ",a[i][j]); 
     
     	printf("\n"); 
   	}   
   	system("pause"); 
   	return 0; 
}

  

 

回答的问题 #c++螺旋矩形输入大于10输出就有错误,求大佬指点
回答了问题于 20 天前

首先,你的while(x!=NULL)这个条件一直为真,你在这个循环体里面少了个scanf_s("%d", &x);不然你的x值一直不变,条件一直为真

其次,在最后的输出那里,你输出的永远是第一个值,而且是无限输出。你应该

while(s!=NULL){

printf("%d", s->data);

s++;}

回答的问题 #请问为什么此链表无法输出值?
回答了问题于 20 天前

我觉得可能的错误只有你的局部变量没有赋初始值,可能在你while(ma < b)第一次判断时出错,其他的我觉得貌似没啥问题。。。

局部变量在赋值之前如果进行了引用,那么此变量值随机,所以你最好在定义时给它一个初始值0,然后再交一遍吧,感觉写的没啥问题QAQ

回答的问题 #求助一道oj题,孩子真不知道咋错了
回答了问题于 20 天前

你把你的思路说一下,以及这个题目给的例子输入输出写一下,你的三个while循环那里有问题

回答的问题 #expected primary-expression before ']' token
回答了问题于 20 天前

低位逐渐往高位进1啊,你不是写出来了吗?从右往左,每个位置上的值依次是2的0次方,2的1次方,2的2次方,以此类推

回答的问题 #二进制01排列有规律吗?
回答了问题于 20 天前

你的重载+函数里面不是有个student t?

回答的问题 #c++面向对象构造函数,堆炸了??我定义了三个对象程序却让我输入了四个对象
回答了问题于 20 天前

在你第二个for循环时,当i = 100时才结束循环, 此时i = 100,那么b[100]不是下标越界?

 

回答的问题 #题 : java 随机100个字母无重复输出。提示下标越界了,。??
回答了问题于 20 天前

你代码都不发出来?

回答的问题 #小甲鱼C语言S1E2课后作业的敲代码为什么编译成功后显示零行?
回答了问题于 20 天前

回答的问题 #约瑟夫问题C++ (萌新学习c++)
回答了问题于 20 天前
#include<stdio.h>

typedef struct student{
	long no;
	char name[9];
	int score;
}Student;//为结构体类型struct student起别名Student

void input(Student stu[], int n){//读入n个学生的数据 
	for(int i = 0; i < n; i++){
		scanf("%ld", &stu[i].no);
		scanf("%s", stu[i].name);
		scanf("%d", &stu[i].score);
	}
} 

//查找学号为xh的学生,不存在返回-1,存在则返回其下标
int search(Student stu[], int n, long no){
	int index = -1;
	for(int i = 0; i < n; i++){
		if(no == stu[i].no){
			index = i;
			break;
		}
	}
	return index;
}

void print(Student stu[], int t){//输出第t个学生的信息
	printf("%ld %s %d\n", stu[t].no, stu[t].name, stu[t].score);
}

int main(){
	int i, n, m ,t;
	long xh;
	struct student stu[100];
	while(scanf("%d", &n) != EOF){
		input(stu, n);//读入n个学生的数据
		scanf("%d", &m);
		for(i = 0; i < m; i++){
			scanf("%ld", &xh);
			t = search(stu, n, xh);//查找学号为xh的学生,不存在返回-1,存在则返回其下标
			if(t == -1)
				printf("%d not exist\n", xh);
			else
				print(stu, t);//输出第t个学生的信息 
		} 
	}
	return 0;
}

 

回答的问题 #一道C++程序题,求大佬帮忙
回答了问题于 20 天前

回答的问题 #一道C++程序题,求大佬帮忙
回答了问题于 20 天前
#include<iostream>
#include<string>
using namespace std;

//struct(关键字)+结构体名称 = 结构体类型 
typedef struct Subject
{
    int math;
    int english;
    int chinese;
}Subject;//将结构体类型struct Subject起别名,别名为Subject 

typedef struct Student
{
    int age;
    string name;
    Subject score;//不起别名这里会报错 

}Student;//将结构体类型struct Student起别名,别名为Student

void bubble(Student b[], int len)
{
    for (int i=0; i < len; i++)
    {
        for (int j=0; j < len - i - 1; j++)
        {
            
            if (b[j].score .chinese  > b[j + 1].score .chinese )
            {
                Student temp;
                temp = b[j];//这里你写反了 
                b[j] = b[j + 1];
                b[j + 1] = temp;

            }
        }
    }
}

void print(Student s[],int k)
{
    cout << "根据语文成绩排序后的学生排名:" << endl;
    for (int i = 0; i < k; i++)
    {
        cout << "姓名:" << s[i].name << "       年龄:" << s[i].age << "    语文   数学   英语成绩:" << s[i].score.chinese << "   " << s[i].score.math << "    " << s[i].score.english << endl;
    }
}

int main()
{
    Student a[3] =
    {
        {18,"张三",{80,90,100}},
        {19, "李四", {99, 99, 99}},
        {20,"王五",{77,77,77}},
    };//为前面的结构体起别名之后这里才不会报错,
	//不起别名会报Student类型未定义的错误 
    int len = sizeof(a)/sizeof(a[0]);
    bubble(a, len);
    print(a, len);
}

 

回答的问题 #我想根据结构体里面的某一值排序结构体,为什么输出不出来
回答了问题于 20 天前

回答的问题 #我想根据结构体里面的某一值排序结构体,为什么输出不出来
回答了问题于 20 天前

你在数据类型的定义中定义由这个数据类型定义的变量,系统无限申请内存,所以就报错了。

在test前加上*test,表明定义了一个结构体类型的指针变量,系统只是分配x,y,和test指针的内存空间给你就行了。

就算你正确定义好了结构体类型,你又没有定义变量然后输出变量的成员值,怎么会有输出呢

回答的问题 #结构体中的*问题,小白?
回答了问题于 22 天前

不给全代码?

回答的问题 #c语言问题,跪求大佬解惑
回答了问题于 24 天前

我把题主的注释去了,我写了注释的地方就是我改了的地方!

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define New_node (stu*)malloc(sizeof(stu))
typedef struct student
{
    int Student_ID;
    struct student *next;
 
}stu;
void input(stu**R) //这里用二层指针修改R的值 
{
    stu *p=New_node; 
    printf("\n请输入十位数的学号:\n");
    scanf("%d",&p->Student_ID);
    p->next=NULL;
    (*R)->next=p;//*R 就是 R的实际值 
    *R=p;//修改 
}
void output(stu *L)
{
    stu *p;
    p=L->next;
    while(p!=NULL)
    {
        printf("%d\n",p->Student_ID);
        p=p->next;
    }
    
}
main()
{
    stu *L=New_node;   
    L->next=NULL;     
    stu *R=L;         
    while(1)
    {
        int i;
        printf("请输入选择\n"); 
        scanf("%d",&i);
        switch(i)
        {
            case 1:input(&R);break;//这里传地址 
            case 2:output(L);break;
        }
        
    }    
}

回答的问题 #想知道我这个代码执行output之后为什么不会输出所有节点的数据?
回答了问题于 24 天前

第三行0x开头是十六进制的标志,其中int类型的数据类型大小为4个字节,1个字节为8个比特位,即int类型的数据长度一共有32个二进制位,1个十六进制符是4个二进制符。即

i的二进制补码

表示应为1111 1111 1111 1111 1111 1111 1111 0001,因为最高位为1,所以i为负数,

i的反码为1111 1111 1111 1111 1111 1111 1111 0000,负数的反码为补码-1

i的原码为1000 0000 0000 0000 0000 0000 0000 1111,,负数的原码为反码除最高位之外其他全部按位取反

所以i的十进制值为-15

~符号为取反,即1变0,0变1,那么j的二进制补码应该为0000 0000 0000 0000 0000 0000 0000 1110,因为最高位为0,所以j为正数,j的原码、反码、补码一样

从最右边开始,依次是2的0次方,2的1次方等等,那么这里应该是1*2+1*4+1*8 = 14.

回答的问题 #求大神帮助这道题,最好能详细一点
回答了问题于 25 天前

我用devc++写的:

#include<stdio.h>
int main(){
    double a, b;
    char c;
    printf("请输入式子:");
    scanf("%lf %c %lf", &a, &c, &b);
    switch(c){
        case '+':
            printf("%lf", a + b); break;
        case '-':
            printf("%lf", a - b); break;
        case '*':
            printf("%lf", a * b); break;
        case '/':
            printf("%lf", a / b); break;
        default:
            printf("式子错误"); break;
    }
}

回答的问题 #用c写了个计算器程序,一输入回车后就报错,有大神能帮我看看这是怎么回事吗?
回答了问题于 25 天前

回答的问题 #用c写了个计算器程序,一输入回车后就报错,有大神能帮我看看这是怎么回事吗?
回答了问题于 25 天前

不是处理字符串输入,还是直接用scanf吧

回答的问题 #用c写了个计算器程序,一输入回车后就报错,有大神能帮我看看这是怎么回事吗?
回答了问题于 25 天前

那个bool里面的if判断,应该是&&符号,不是逗号,逗号运算符的结果是最后一个逗号右边的值当做总体值

回答的问题 #为什么‘{’能让‘】’出栈?
回答了问题于 25 天前

你的next指针没有问题,你的问题是你的qian指针。

你的头结点的qian是NULL,next是第一个首元素节点,但是你的首元素节点的qian指向了头结点qian的NULL

然后,你的end尾指针等于你的第一个节点,这也没错。

当你申请第二个元素节点时,你的end->next还是没有问题,但是你的node的qian却指向了end->qian即头结点head。

也就是说,你的所有next指针都没有问题,但是你的申请的元素节点的qian指针永远指向的是在你之前的第二个节点。

当你使用end->qian的时候,如果此时你的节点到了头结点后的第一个首元素节点,那么你的end->qian的实际上指向了空,所以没有end->qian->a这个变量。你直接只创一个首元素节点实验一下,系统就会给你报错了。

正确的for循环体应该是第一个程序那样写的,重在理解,理解不了就画图看看

回答的问题 #关于双链表的定义,急
回答了问题于 26 天前

char *b正常情况下是指向char类型变量的指针,a是int类型,你在给指针赋值时,指针指向的应该是一个地址,所以是&a,因为a和b的类型不同,所以要进行格式强制转换,(char *)是强制转化成char *类型,括号不能去掉

回答的问题 #小白,求问,如下图?
回答了问题于 26 天前

而且到底有没有问题取决于你的自定义函数中怎么去使用这个形参数组,或者怎么判断到数组最后一个有效元素了。所以,书上会建议形参和实参的数组元素个数保持一致,这样就不会出现形参随机值影响你的程序结果的可能。

形参初始化有一定的局限性,可能你的实参数组会有跟初始化一样的值影响你的程序结果。所以最好直接用实参数组元素个数去做循环体判断。

 

回答的问题 #实参数组的元素个数可以小于形参数组的个数吗
回答了问题于 27 天前

可以,但是形参后面空出的部分,对于整型数组会自动赋整数0,对于字符型数组会自动赋空字符'\0'

回答的问题 #实参数组的元素个数可以小于形参数组的个数吗
回答了问题于 27 天前

我们习惯给结构体指针起别名,特指结构体头指针,方便我们分辨和区别。

LinkList head;

Lnode *p;

这样就很明显可以知道head是头指针了 

回答的问题 #c语言中为什么指针变量head和last的类型一样,为什么还要去不同的方式定义。
回答了问题于 28 天前

八进制数字常以0开头,如果你的b=0x25,那么输出b为37,0x是16进制的常开头

回答的问题 #帮我看一下C语言的结果
回答了问题于 28 天前
passwords =['open sesame', 'password', '12345']
x=input('Enter password:')
while x not in passwords:
    print('not')
    x=input('Enter password:')
else:
    print('wel')
回答的问题 #求救贴!!!如何不断重复一个程序,直到得到正确答案?
回答了问题于 28 天前

这个handle函数中的形参是一个函数指针变量的定义。

函数类型    (* 指针变量名)(形参类型列表)

当你调用handle函数时,你的实参一定是一个返回值类型为int,形参为空的函数的函数名字,其实函数名与数组名表示数组的首地址类似,函数名也表示函数的入口地址,函数名可以当地址来用

回答的问题 #请教C语言,指针和函数之间存在什么关系
回答了问题于 29 天前

从主函数开始:

首先定义一个int数组,名字为myarray,大小为10;

然后调用函数populate_array,这里先看此函数的定义

第一个形参为int类型的指针,对应主函数的myarray,(数组名字就是一个地址)

第二个形参为int整数,主要是为了循环次数用的,

第三个形参是返回类型为int类型的函数指针,函数指针定义如下:

函数类型    (*指针变量名) (形参类型表),这里的形参类型表对应了你的指针指向的函数的形参列表,这里的指针变量指向了函数getNextRandomValue,函数名可以表示函数的入口,即函数名也是一个地址,所以你的形参可以指向这个函数。具体的请题主自行百度“函数指针”

在函数的for循环中, *(array+i)表示实参myarray的第(i+1)个元素,当i = 0时,*(array+0)就相当于array[0]即myarray[0],以此类推。

因为前面你的形参函数指针指向了getNextRandomValue,所以此时getNextValue()相当于getNextRandomValue()。

再来看getNextRandomValue()函数,返回值类型为int整型,里面只有一个语句return rand():

这里的rand()函数是stdlib.h头文件中的一个函数,这个函数会返回一个整数随机值,即return rand() = return 随机整数。

其他的题主应该可以理解了

 

 

回答的问题 #指针函数回调函数把我整懵了
回答了问题于 29 天前

回答的问题 #c程序设计题,对于有空行的二进制字符串转十进制怎么转?
回答了问题于 29 天前

我不知道题主啥时候回复我,我先说说我的思路,用“rb+"打开目的文件,比较学号,找到指定学号学生,用ftell(fp)获取当前文件指针位置。然后fseek(fp,前面获得的位置,0),此时fp到了对应学号数据的地址,在前一个学号数据的末尾,然后fwrite()函数把你的数据写进去就可以了。fseek一定不能少,你读取之后直接用写的话,文件指针从头开始了。

回答的问题 #<C语言>文件内容究竟如何进行修改?(含例题)
回答了问题于 29 天前

题主能提供题目给的源程序吗?我不知道哪些地方可以改

回答的问题 #<C语言>文件内容究竟如何进行修改?(含例题)
回答了问题于 29 天前

#号这一行一直调用,直到你的i = 0为止,当你的i=0时,才不会产生调用了,然后就能看到输出。所以是最先看到i = 0时的输出,然后输出倒数第二个调用的i,然后输出倒数第三个调用的i,一直输出,直到你最先开始传入convert()函数的i经过i = n/10之后的值。

回答的问题 #递归函数是先调用自己,再执行下一个语句吗 #号这一行一直在调用,那么*号这一行是以什么顺序执行的
回答了问题于 29 天前

预编译中主要包括宏定义、文件包含、条件编译。

其中宏替换即#define 宏名 宏体会在程序运行之前完成,不占用运行时间,程序的执行效率高。

回答的问题 #关于预编译如何选,预编译真的很好吗?
回答了问题于 29 天前

fread(s1, sizeof(int), 10, s2)从s2所指向的文件中,读取10个长度为4字节的数存入数组s1中

fwrite(s1, sizeof(int), 10, s3)将以起始地址为s1,读取10个长度为4字节的数存入s3所指向的文件中。

这两个函数的最后一个参数都是文件指针,第一个函数都是内存地址。一个从文件取,一个写入文件,这还没区别?

回答的问题 #关于fread() 和 fwrite()
回答了问题于 1 月前

第一个scanf("%s", a[i])试试

回答的问题 #c语言字符串数组的输入输出
回答了问题于 1 月前

差不多就是这个样子吧

void ListInsert(LinkList *&L, int e){
    LinkList *pre, *tmp;
    tmp = (LinkList *)malloc(sizeof(LinkList));
    pre = (*L);
    while(pre->next != NULL){
        if(e > pre->next->data)
            pre = pre->next;
        else
            break;
    }
    tmp->data = e;
    tmp->next = pre->next;
    pre->next = tmp;
}

回答的问题 #求助,怎样实现有序链表插入?
回答了问题于 1 月前

三个读取输入分开写就行了,跟scanf函数%s %c和空格有关

回答的问题 #xdm 在线求助为什么
回答了问题于 1 月前

你写了函数的时候,运行到函数那个步骤再点单步进入可以看函数运行过程

具体调试方法:

https://blog.csdn.net/hz18790581821/article/details/78418648

回答的问题 #devc++怎么能看运行代码每行的过程啊
回答了问题于 1 月前

问点人间的题目吧,这涉及到操作系统了,知识有限,解答不了

回答的问题 #C++指针的两种输出为何不同
回答了问题于 1 月前