C语言求助,大一刚学C问程序哪里出错

发布于 科技 2024-04-19
8个回答
  1. 匿名用户2024-01-27

    你的基本逻辑是正确的,在输出 s 元素时使用 %c 而不是 %s 存在一个重要的错误。

    另外,虽然改动后的输出结果是正确的,但不在第一行,不同的字符也没有放到字符串u中。

    我改变了它,你看。

    您的**:包括""

    #include

    main()

    char s[80],t[80];

    int i,a,b,c,k;

    gets(s);

    gets(t);

    c=strlen(s);

    k=strlen(t);

    for(i=0;i

    main()

    char s[80],t[80],u[80];

    int i,a,b,c,k,n;

    gets(s);

    gets(t);

    c=strlen(s);

    k=strlen(t);

    n=0;for(i=0; i

  2. 匿名用户2024-01-26

    printf("%s",s[i]);

    这应该是 printf("%c",s[i]);

    你再测试一次。 %s 表示一个字符串,输出为整个数组。

    c 表示一个字符的输出。

  3. 匿名用户2024-01-25

    这是因为在 C 中,两个整数的商仍然是一个整数,因此任何“真分数”的除法在 C 中都会给出 0 的商。 因此,在您的程序中,在循环体中,除了第一项之外,1 1 = 1,1 2 = 0,1 6 = 0,1 24 = 0,......所以最终结果是。

    下面给出了稍作修改的解决方案,这样当系统除法时,它会将分母转换为浮点数,然后进行除法,您将得到正确的答案。 最好的方法是将 int fact(int n) 更改为 double fact(int n)。

    并把 int m=1; 改为双 m=1; float t,u;改为双 t,u;

  4. 匿名用户2024-01-24

    总结。 你好,scanf( %d,&a); 少一个引号不仅是打字错误,也是源程序中的错误。

    c 程序的哪个步骤是错误的。

    你好,scanf( %d,&a); 少一个引号不仅是打字错误,也是源程序中的错误。

    **错。

  5. 匿名用户2024-01-23

    首先,让我们用这种 C 语言回答错误的原因:

    第一个 gets 是未定义的:

    出现此错误通常是因为未包含相应的头文件,或者库没有此功能。 这里不应该有这样的功能。 gets(char *dest) 是一个旧的库函数,使用这个函数存在安全风险。

    它只有一个参数,如果输入的字符数超过dext内存空间中的字符数,程序可能会失败,或者黑客可能会利用此漏洞进行异常操作。 你可以改用 fgets(char *dest, int size, file *fp),这可以通过使用第二个参数设置最大输入来解决上述问题。

    后三个 strcat 参数 2 类型不匹配:

    strcat 的第二个参数在语言 char * 中,调用时 jiji[i] 是 char,可以写成 &jiji[i],改语法后没有问题,逻辑要自己评估。

    第四个返回局部变量 re:

    rE 是 LAI 函数内部的一个数组,在堆栈中,当函数执行时,它会释放资源。 堆栈中的空间可能会在其他地方使用,并且内容可能会被更改。 建议不要返回局部变量。

    这就是这个语法错误的答案。

    添加附加

    总体来说,这个****比较长,for循环比较多,后面会优化一下。 先实现功能,再优化。 这是您可以参考的**。

  6. 匿名用户2024-01-22

    您的编译器版本是新的,在 C11 中删除了 gets 函数,并且不再有此函数。

    jiji[i] 的类型是 char,strcat 的第二个参数应该是 const char*,当然不是。

  7. 匿名用户2024-01-21

    我已经为你完成了对你的C语言程序的修改,所以看看吧(有很多变化,所以你自己和原来的程序比较一下)。

    #include

    #include

    #define n 100

    #define s 101

    #define z 26

    char lai(int i),k,j,ch;

    char s[s][n]=,r[s][n]=,b[2]=;

    scanf("%d",&n);

    for(i=0;iscanf("%s",s[i]);

    for(i=0;ifor(k=0;s[i][k]!=0';k++)else if(ji[j][i]==1){

    b[0]=lai(i);

    strcat(r[j],b);

    for(i=0;iprintf("%s",r[i]);

    return 0;

  8. 匿名用户2024-01-20

    总结。 float a;printf("请输入正方形的边长正方形的面积,如%f",s);printf("正方形的周长:%f",l);return 0;

    我写错了c语言**,请告诉我。

    您好,您可能正在寻找有关如何在 C 语言程序中找到正方形的面积和周长的答案。 上面的步骤可以正确找到正方形的面积和周长,但需要在第 5 行添加一个句子 scanf(“%f”,&a) 来读取输入的正方形的边长,第 9 行和第 10 行的排版格式应为“%f”。

    第五行有这个 scanf(“%f”,&a)。

    Scanf(“%f”,&a) 是一个 C 函数调用,它从控制台获取浮点数并将其存储在变量 a 中。

    float a;printf("请输入正方形的边长正方形的面积,如%f",s);printf("正方形的周长:%f",l);return 0;谢谢。

相关回答
10个回答2024-04-19

你说的是大学课程C预言还是2级C预言证书考试。 >>>More

6个回答2024-04-19

这么简单的问题,你不想想就出来了吗

16个回答2024-04-19

递归:是自我调整,但是会有无穷无尽的循环而不终止条件,所以你的递归**有一个条件来结束自调优,这样就产生了有限数量的循环(你看不到for或foreach,但有循环发生)。

13个回答2024-04-19

选择a,根据标题a[0][0]=1,a[0][1]=2,a[0][2]=0,a[1][0]=3,a[1][1]=4,a[1][2]=0,a[2][0]=5,a[2][1]=6,a[2][2]=0 >>>More

10个回答2024-04-19

如果不考虑出界的整数范围,则简单实现如下: >>>More