Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 当零是计算器程序中的操作数时,没有结果_C_Printf_Scanf - Fatal编程技术网

C 当零是计算器程序中的操作数时,没有结果

C 当零是计算器程序中的操作数时,没有结果,c,printf,scanf,C,Printf,Scanf,我正在用C写一个计算器程序 /* * sum.c ch 2 1.Write a program in “SUM.C” which reads two integers and prints out the sum, the difference and the product. Divide them too, printing your answer to two decimal places. Also print the remainder after the two numbers a

我正在用C写一个计算器程序

/*
 * sum.c
ch 2
1.Write a program in “SUM.C” which reads two integers and prints out the sum,
the difference and the product. Divide them too, printing your answer to two
decimal places. Also print the remainder after the two numbers are divided.
Introduce a test to ensure that when dividing the numbers, the second number
is not zero.
What happens when you add two numbers and the sum is too large to fit into
the data type you are using? Are there friendly error messages?

 *
 *  Created on: Jan 10, 2014
 *      Author: salahuddin
 */


#include<stdio.h>

int main(void)
{
    int first,second;

    printf("Please enter two number a,b");
    scanf("%i,%i",&first,&second);

    printf("sum=%i,   difference=%i,   product=%i,    ",
            first+second,first-second,first*second);

    if(second!=0)
        printf("division=%.2lf,    ",(double)first/(double)second);
    else
        printf("remainder=%i",first%second);

return 0;
}
/*
*总数.c
第2章
1.在“SUM.C”中编写一个程序,读取两个整数并打印出总和,
差异和产品。把它们也分开,把你的答案打印成两份
小数位。在两个数字相除后也打印余数。
引入一个测试,以确保在划分数字时,第二个数字
不是零。
当你把两个数字加起来,加起来太大而无法容纳时会发生什么
您正在使用的数据类型?是否有友好的错误消息?
*
*创建日期:2014年1月10日
*作者:萨拉赫丁
*/
#包括
内部主(空)
{
int第一,第二;
printf(“请输入两个数字a、b”);
scanf(“%i,%i”、&first和&second);
printf(“和=%i,差=%i,积=%i,”,
第一+第二、第一秒、第一*第二);
如果(秒!=0)
printf(“除法=%.2lf,,(双)第一/(双)第二);
其他的
printf(“余数=%i”,第一个%s);
返回0;
}
它在输入除0以外的数字时效果非常好 当我输入2,0作为输入时,没有任何东西出现

我尝试在eclipse中使用调试器对其进行调试,这两个变量的值为2,0 但它不打印计算结果,直接退出程序


有人能说出问题出在哪里吗?

2%0
是未定义的行为


这将在除以零后给您提示。除以零表示未定义的行为


这将在除以零后给您提示。除以零表示未定义的行为


这将在除以零后给您提示。除以零表示未定义的行为


这将在除以零后给您提示。被零除是未定义的

您的程序可能因为被零除而终止。如果您有更多的换行和/或刷新调用,您可能会看到输出,直到程序结束。

您的程序可能因为执行零除而终止。如果您有更多的换行和/或刷新调用,您可能会看到输出,直到程序结束。

您的程序可能因为执行零除而终止。如果您有更多的换行和/或刷新调用,您可能会看到输出,直到程序结束。

您的程序可能因为执行零除而终止。如果您有更多的换行和/或刷新调用,您可能会看到输出,直到程序结束。

由于被零除

您说您尝试使用调试器,但没有提到调试器错误

gdb
给出以下错误

Program received signal SIGFPE, Arithmetic exception.
0x08048516 in main () at test.c:16
   16           printf("remainder=%i",first%second);
由于被零除

您说您尝试使用调试器,但没有提到调试器错误

gdb
给出以下错误

Program received signal SIGFPE, Arithmetic exception.
0x08048516 in main () at test.c:16
   16           printf("remainder=%i",first%second);
由于被零除

您说您尝试使用调试器,但没有提到调试器错误

gdb
给出以下错误

Program received signal SIGFPE, Arithmetic exception.
0x08048516 in main () at test.c:16
   16           printf("remainder=%i",first%second);
由于被零除

您说您尝试使用调试器,但没有提到调试器错误

gdb
给出以下错误

Program received signal SIGFPE, Arithmetic exception.
0x08048516 in main () at test.c:16
   16           printf("remainder=%i",first%second);
试试这个

if(second!=0)
{
  printf("division=%.2lf,    ",(double)first/second);
  printf("remainder=%i",first%second);
}
还应尽量避免使用
scanf()
,而是使用
fgets()
然后使用
sscanf()
strtok()、atoi()
检索内容。
scanf()

if(second!=0)
{
  printf("division=%.2lf,    ",(double)first/second);
  printf("remainder=%i",first%second);
}
还应尽量避免使用
scanf()
,而是使用
fgets()
然后使用
sscanf()
strtok()、atoi()
检索内容。
scanf()

if(second!=0)
{
  printf("division=%.2lf,    ",(double)first/second);
  printf("remainder=%i",first%second);
}
还应尽量避免使用
scanf()
,而是使用
fgets()
然后使用
sscanf()
strtok()、atoi()
检索内容。
scanf()

if(second!=0)
{
  printf("division=%.2lf,    ",(double)first/second);
  printf("remainder=%i",first%second);
}
还应尽量避免使用
scanf()
,而是使用
fgets()
然后使用
sscanf()
strtok()、atoi()
检索内容。
scanf()
使用起来可能有点复杂,很容易出错。

@A4L-OP这里讲的是两个数字,而不是一个浮点数。你需要注意所有的NaN情况,例如1/0 1%0等。我输入了2,0,因为两个输入必须用,@OliCharlesworth哪里是2%0?@Salahuddin这里:
first%second
@A4L-OP在这里谈论的是2个数字,而不是一个浮点数。你需要注意所有的NaN情况,例如1/0 1%0等。我输入了2,0,因为两个输入必须用,@OliCharlesworth哪里是2%0?@Salahuddin这里:
first%second
@A4L-OP在这里谈论的是2个数字,而不是一个浮点数。你需要注意所有的NaN情况,例如1/0 1%0等。我输入了2,0,因为两个输入必须用,@OliCharlesworth在哪里是2%0?@Salahuddin在这里:
first%second
@A4L-OP在这里谈论的是2个数字,而不是一个浮点数。你需要处理所有的NaN情况,例如1/01%0等。我输入了2,0,因为两个输入必须用分隔,@OliCharlesworth在哪里是2%0?@Salahuddin在这里:
first%second