我正在运行一个简单的添加程序,但是当我检查整数时,我遇到输出问题?

时间:2015-06-10 18:05:19

标签: c

Matrix matrixA(1, 1);
Matrix matrixB(2, 2);
matrixA = matrixB;

以上是代码,我有一个小问题。每次输入一个字符而不是在屏幕上输入无效的输入时,我都会输出错误的输出。

3 个答案:

答案 0 :(得分:0)

C库函数cli-tool create-snapshot.. calls java class eventually calling below method SnapshotUtil.createSnapshot() // statically call AWSAdapter.createSnapshot(); 检查传递的字符是否为十进制数字。您需要在代码中正确使用isdigit。您可以在此处找到isdigit

usage

答案 1 :(得分:0)

首先,您的代码中存在一些非常基本的问题。我会尝试解释这些。

#include<stdio.h>
#include<ctype.h>

int addi(int n, int m)
{
   // 1
   int x;
   x=n+m;
   printf("%d",x);
   return 0;
}

在您的代码数字:1 点,您始终打印添加的值并返回0,这不是一个好方法,您应该返回添加值并从main函数打印它。您只能通过此行return n+m;

替换整个代码
int main()
{
   int t,u,i,j,k;
   printf("please enter two integers to be added");
   while(1){
      scanf("%d%d", &u, &t);
      if(isdigit(t)==0 && isdigit(u)==0)
         break;
      else
      {
         if(isdigit(t)==1 or isdigit(u)==1) // 2
            printf("invalid input");
      }
   }

   i=addi(u,t); // 3
   return 0;
}

数字:2 点,您有2个错误,1:or不是c中的任何关键字,您应该使用||这个。和2:isdigit()返回字符的值,如果它是一个数字,则返回0,因此如果值为invalid input 1 >

数字:3 中,您不应该一直调用addi函数,只需调用此函数即可。

答案 2 :(得分:0)

您的功能&#39; addi&#39; dint返回任何内容,以便为什么&#39;返回0&#39;?

您可能想要 void

另一件事是你在变量 i

中捕获返回的原因

请检查您希望代码执行的操作。

有效C语法使用 || 代替&amp;&amp; 代替

isdigit()返回数字本身的值,如果是数字,则返回0

因此,请相应地使用它来解决问题