搜索
查看: 1954|回复: 10
打印 上一主题 下一主题

C语言渣又诚心发问:麻烦给我解释一下这个程序

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-8 17:01:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
刚刚在看教程时候看到改错题,说是有三个错误。然后自己抱着必错的心态先照着题目凭感觉写一个程序,没想到检查之后显示0 error(s),0 waring(s).可是心里还很疑惑。

就想问问程序里头从c=a-b;……开始到后面程序结束的部分还是有点儿不理解。求解说。{:soso_e110:}

360软件小助手截图20130808164940.jpg (20.02 KB, 下载次数: 2)

刚刚在看啊哈磊的教程里头的改错题目

刚刚在看啊哈磊的教程里头的改错题目

initpintu.jpg (24.91 KB, 下载次数: 3)

教程里头的改错的程序

教程里头的改错的程序

360软件小助手截图20130808164922.jpg (16.91 KB, 下载次数: 1)

自己写的程序

自己写的程序

最佳答案

查看完整内容

本来的三个错误是 include main 拼写错,以及一个\n写成了/n 你的程序中printf的格式字符串有6个占位符%d,但是只有一个参数c,是未定义的,编译器不会报错,但是会有问题 如果要写成一句应该这么写 printf("%d+%d=%d\n%d-%d=%d\n", a, b, a+b, a, b, a-b);
沙发
发表于 2013-8-8 17:01:01 | 只看该作者
本来的三个错误是 include main 拼写错,以及一个\n写成了/n

你的程序中printf的格式字符串有6个占位符%d,但是只有一个参数c,是未定义的,编译器不会报错,但是会有问题

如果要写成一句应该这么写
printf("%d+%d=%d\n%d-%d=%d\n", a, b, a+b, a, b, a-b);
板凳
 楼主| 发表于 2013-8-8 17:24:34 | 只看该作者
rosynirvana 发表于 2013-8-8 17:21
本来的三个错误是 include main 拼写错,以及一个\n写成了/n

你的程序中printf的格式字符串有6个占位符% ...

printf("%d+%d=%d\n%d-%d=%d\n", a, b, a+b, a, b, a-b);里头不用写c吗?
地板
发表于 2013-8-8 17:32:45 | 只看该作者
C语言渣 发表于 2013-8-8 17:24
printf("%d+%d=%d\n%d-%d=%d\n", a, b, a+b, a, b, a-b);里头不用写c吗?

你要计算a+b和a-b
直接写a+b和a-b就行
而且这里没办法用中间变量c
c不能同时储存a+b和a-b两个值
5#
 楼主| 发表于 2013-8-8 17:47:58 | 只看该作者
rosynirvana 发表于 2013-8-8 17:32
你要计算a+b和a-b
直接写a+b和a-b就行
而且这里没办法用中间变量c

#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b;
        a=10;
        b=5;
        printf("%d+%d=%d\n%d-%d=%d\n", a, b, a+b, a, b, a-b);
        return 0;
}


这样是最终结果了,对了吗?…弱弱地问一句括号里头最后一个%d后头为什么加\n?前面不是已经有一个换行符了吗?
6#
发表于 2013-8-8 18:23:54 | 只看该作者
C语言渣 发表于 2013-8-8 17:47
#include
#include
int main()

没错

不加第二个换行符就会和其他输出挤在一起
如果你用Windows的话,可能没这个问题
7#
 楼主| 发表于 2013-8-8 19:00:09 | 只看该作者
rosynirvana 发表于 2013-8-8 18:23
没错

不加第二个换行符就会和其他输出挤在一起

嗯,明白啦。灰常感谢。
8#
 楼主| 发表于 2013-8-18 14:46:29 | 只看该作者
再遇难题求指导

360软件小助手截图20130818142954.jpg (30.96 KB, 下载次数: 2)

这是改错题目

这是改错题目
9#
 楼主| 发表于 2013-8-18 14:47:19 | 只看该作者
关于scanf的应用方面@rosynirvana

360软件小助手截图20130818143013.jpg (20.33 KB, 下载次数: 3)

这是自己在外头编写的程序

这是自己在外头编写的程序
10#
 楼主| 发表于 2013-8-18 14:48:10 | 只看该作者
本帖最后由 C语言渣 于 2013-8-18 14:57 编辑


积分不够没办法发帖只能在原帖回复里头提问,请过来看看,谢谢#include <stdio.h>#include<stdlib.h>
int main()
{
    int a,b,c;
    scanf("%d %d",&a,&b);
    c=a+b;
    printf("%d+%d=%d",a,b,c);
    system("pause");
        return 0;
}

11#
发表于 2013-8-18 15:35:46 | 只看该作者
C语言渣 发表于 2013-8-18 14:48
积分不够没办法发帖只能在原帖回复里头提问,请过来看看,谢谢#include #include
int main()
{

你贴文本的那一段没错,贴图片的那一段能看出stdlib.h写错了

点评

确实。图片里第二行的<stdlib.h> 前面少了个空格 除此之外,编码是通过的  发表于 2013-8-18 17:55
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表