我想创建一个C程序,在输入数组中找到数字,然后将它们相乘,我制作了程序,但它有一个我不知道的问题,任何人都可以帮助我!?< / p>
这是代码!
#include <stdio.h>
#include <stdlib.h>
int main ()
{
char t[10];
int n, z;
n = 0;
printf ("please enter a code: \n");
scanf ("%s", t);
while (n != '\0')
{
if (isdigit (t[n] == 0))
{
n++;
}
else
{
z = t[n];
z *= z;
}
}
printf ("%d", z);
}
答案 0 :(得分:1)
这是更新的代码。每个需要更正的bug都有评论。 (请注意,注释描述了更正代码的意图,但没有描述错误。)
int temp;
z=1; // Initialize z
printf ("please enter a code: \n");
scanf ("%s", n);
while (t[n] != '\0') { // While there are more characters in the string
if (isdigit (t[n])) { // Check if the character is a digit
temp = t[n] - '0'; // Convert character digit to corresponding number.
z *= temp;
}
n++;
}
答案 1 :(得分:0)
您的首要问题是您实际上并未在t
循环中使用while
。您的while
循环仅使用设置为n
且永不修改的0
。
您的第二个问题是,您最好立即使用scanf("%d", &number);
来扫描数字。
答案 2 :(得分:0)
z
应初始化为1
。并删除&#34; z = t[n];
&#34;
答案 3 :(得分:0)
#include <stdio.h>
#include <string.h>
main()
{
char a[5] ;
int b=1, n=0,m=0;
scanf("%s",a);
while (n <5 )
{
if (!isdigit(a[n]))
{
n++;
m++;
}
else{
b *= (a[n]-'0');
n++;
}
}
if(m==5) b=0;
printf("%d\n",b);
}