黑马程序员技术交流社区

标题: 关于c语言的两个问题,问了几个大神都bu知道! [打印本页]

作者: gululu23    时间: 2014-12-14 10:27
标题: 关于c语言的两个问题,问了几个大神都bu知道!
本帖最后由 gululu23 于 2014-12-14 10:41 编辑

直接上 代码
  1. //
  2. //  main.m
  3. //  dheiu
  4. //
  5. //  Created by 咕噜噜的mac on 14-12-14.
  6. //  Copyright (c) 2014年 咕噜噜的mac. All rights reserved.
  7. //
  8. #include <stdio.h>
  9. void sumAndMinusAndMultiplyAndQuotientAndResidue(int a, int b,int *sum, int *minus,int *multiply, int *quotient, int *residue);
  10. int main()
  11. {
  12.    
  13.     //提示输入两个数
  14.     printf("请输入两个整数,并以空格符号隔开\n");
  15.    
  16.     //定义两个变量
  17.     int a,b;
  18.    
  19.     //接受两个变量
  20.     scanf("%d  %d",&a , &b);
  21.    
  22.     //定义变量和、差、积、商、余数
  23.     int sum , minus , multiply , quotient , residue;
  24.    
  25.     //调用函数,并传入和、差、积、商、余数的变量地址
  26.    
  27.     sumAndMinusAndMultiplyAndQuotientAndResidue(a, b, &sum, &minus, &multiply, "ient, &residue);
  28.    
  29.     //输入两数的和、差、积、商、余数
  30. //    printf("%d + %d = %d \n %d - %d = %d \n %d * %d = %d \n %d / %d = %d \n %d %% %d = %d\n ", a , b ,sum ,a , b , minus , a , b ,multiply , a , b ,quotient , residue );
  31.     printf("%d + %d = %d\n",a, b,  sum);
  32.     printf("%d - %d = %d\n",a ,b , minus);
  33.     printf("%d * %d = %d\n",a , b, multiply);
  34.     printf("%d / %d = %d\n",a , b, quotient);
  35.     printf("%d %% %d = %d\n",a, b, residue);
  36.    
  37.     return 0;
  38. }

  39. //定义函数,计算两数和、差、积、商、余数
  40. void sumAndMinusAndMultiplyAndQuotientAndResidue(int a, int b,int *sum, int *minus,int *multiply, int *quotient, int *residue)
  41. {
  42.     //和
  43.     *sum = a + b;
  44.    
  45.     //差
  46.     *minus = a - b;
  47.    
  48.     //积
  49.     *multiply = a * b;
  50.    
  51.     //商
  52.     *quotient = a / b;
  53.    
  54.     //余数
  55.     *residue = a % b;
  56.    
  57. }
复制代码

问题1:如果用上面的scanf函数一次全部输出的时候,会有警告?
问题2:用xcode运行的时候,只能输入只能显示一个数数字,但运算结果是正确的?请大神亲测 下  

作者: 楚燮哥哥    时间: 2014-12-14 11:18
分开写吧,提示输入一个变量,再输入另一个变量,用两个scanf接收,可以试一下scanf("%d,%d",&a , &b)这样接收
作者: qiubaoyang    时间: 2014-12-14 11:34
将上述代码中的第27行中的   "ient    改为  & quotient   就行了!不懂欢迎再问!
作者: gululu23    时间: 2014-12-14 11:49
qiubaoyang 发表于 2014-12-14 11:34
将上述代码中的第27行中的   "ient    改为  & quotient   就行了!不懂欢迎再问! ...

这个是我粘贴时候错了,原代码哪里是quotient的,但我xcode还是只能显示一个数组?
作者: qiubaoyang    时间: 2014-12-14 11:51
有没有加上取地址符&?
作者: gululu23    时间: 2014-12-15 08:12
qiubaoyang 发表于 2014-12-14 11:51
有没有加上取地址符&?
  1. /*

  2. 8、 输入两个数,打印(printf)这两个数的和、差、积、商、以及余数。(C语言编程题)

  3. */

  4. #include <stdio.h>


  5. //声明函数
  6. void sumAndMinusAndMultiplyAndQuotientAndResidue(int a, int b,int *sum, int *minus,int *multiply, int *quotient, int *residue);

  7. int main()
  8. {
  9.    
  10.     //提示输入两个数
  11.     printf("请输入两个整数,并以空格符号隔开\n");
  12.    
  13.     //定义两个变量
  14.     int a,b;
  15.    
  16.     //接受两个变量
  17.     scanf("%d  %d",&a , &b);
  18.    
  19.     //定义变量和、差、积、商、余数
  20.     int sum , minus , multiply , quotient , residue;
  21.    
  22.     //调用函数,并传入和、差、积、商、余数的变量地址
  23.    
  24.     sumAndMinusAndMultiplyAndQuotientAndResidue(a, b, &sum, &minus, &multiply,  &quotient, &residue);
  25.    
  26.     //输入两数的和
  27.     printf("%d + %d = %d\n",a, b,  sum);
  28.    
  29.     //输入两数的差
  30.     printf("%d - %d = %d\n",a ,b , minus);
  31.    
  32.     //输入两数的积
  33.     printf("%d * %d = %d\n",a , b, multiply);
  34.    
  35.     //输入两数的商
  36.     printf("%d / %d = %d\n",a , b, quotient);
  37.    
  38.     //输入两数的余数
  39.     printf("%d %% %d = %d\n",a, b, residue);
  40.    
  41.     return 0;
  42. }

  43. //定义函数,计算两数和、差、积、商、余数
  44. void sumAndMinusAndMultiplyAndQuotientAndResidue(int a, int b,int *sum, int *minus,int *multiply, int *quotient, int *residue)
  45. {
  46.     //和
  47.     *sum = a + b;
  48.    
  49.     //差
  50.     *minus = a - b;
  51.    
  52.     //积
  53.     *multiply = a * b;
  54.    
  55.     //商
  56.     *quotient = a / b;
  57.    
  58.     //余数
  59.     *residue = a % b;
  60.    
  61. }
复制代码

最后给你发的截图上面可以明显看到,我加了&哈,朋友,你运行下,这段代码,把结果贴出来,我看下,我是不是我xcode的问题哈!你看这样可以吗?
作者: wangxiaoit    时间: 2014-12-15 08:43
代码应该没问题。我在 Linux下可以运行成功,各个编译器有些许的差别,我看你scanf("%d  %d",&a , &b);   %d 和 %d 之间有两个空格,不知道是不是这个原因。
作者: 墓笙    时间: 2014-12-15 12:39
如果我没有记错,scanf不能读取空格  tab   你把空格改成-试试      没有Xcode  只能这样空口说说!
作者: arui12580    时间: 2014-12-15 12:57
用宏定义不更快,为毛要用函数?
作者: gululu23    时间: 2014-12-15 14:38
墓笙 发表于 2014-12-15 12:39
如果我没有记错,scanf不能读取空格  tab   你把空格改成-试试      没有Xcode  只能这样空口说说! ...

用控制台运行是完全没有问题的,是xcode就是这样的了!
作者: gululu23    时间: 2014-12-15 14:40
墓笙 发表于 2014-12-15 12:39
如果我没有记错,scanf不能读取空格  tab   你把空格改成-试试      没有Xcode  只能这样空口说说! ...

用控制台运行是完全没有问题的,是xcode就是这样的了!
作者: gululu23    时间: 2014-12-15 14:41
arui12580 发表于 2014-12-15 12:57
用宏定义不更快,为毛要用函数?

问题不是出在这里,而是出在用xcode能不能输入多个字符的问题哈!:)
作者: gululu23    时间: 2014-12-15 14:45
arui12580 发表于 2014-12-15 12:57
用宏定义不更快,为毛要用函数?

问题不是出在这里,而是出在用xcode能不能输入多个字符的问题哈!:)
作者: 从今以后    时间: 2014-12-15 20:48
为毛我粘贴过去用Xcode试没问题- -
作者: gululu23    时间: 2014-12-15 21:14
从今以后 发表于 2014-12-15 20:48
为毛我粘贴过去用Xcode试没问题- -

兄弟  能贴个图吗
我的xcode其他的都正常,就要唯独这个功能有点问题!难到是什么功能没有开启???:'(




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2