C 程序读取4位整数并输出数字总和
我被一个编程入门课程的作业困住了。我们使用的是C。任务是: 编写一个程序,要求用户输入一个四位数的整数,并输出整数中四位数的总和 我尝试过不同的东西,但当我测试程序时,它不起作用。当我编译它时,我没有得到错误,所以当我继续测试它时,它不会给我正确的答案。我尝试过不同的事情,它只是给了我不同的答案,但它仍然是错误的 给我这个是为了测试这个程序:当被要求输入四位整数时,输入1234,答案必须是10C 程序读取4位整数并输出数字总和,c,scanf,C,Scanf,我被一个编程入门课程的作业困住了。我们使用的是C。任务是: 编写一个程序,要求用户输入一个四位数的整数,并输出整数中四位数的总和 我尝试过不同的东西,但当我测试程序时,它不起作用。当我编译它时,我没有得到错误,所以当我继续测试它时,它不会给我正确的答案。我尝试过不同的事情,它只是给了我不同的答案,但它仍然是错误的 给我这个是为了测试这个程序:当被要求输入四位整数时,输入1234,答案必须是10 #include <stdio.h> int main(void) { int
#include <stdio.h>
int
main(void)
{
int sum,digit1,digit2,digit3,digit4;
printf("enter four digit integer:\n");
scanf("%d", &digit1,&digit2,&digit3,&digit4);
digit1=(digit1%1000)/10;
digit2=(digit2%1000)/10;
digit3=(digit3%1000)/10;
digit4=(digit4%1000)/10;
/*calculation*/
sum=digit1+digit2+digit3+digit4;
printf ("answer is: %d\n",sum);
return (0);
}
#包括
int
主(空)
{
整数和,数字1,数字2,数字3,数字4;
printf(“输入四位整数:\n”);
scanf(“%d”、&digit1、&digit2、&digit3、&digit4);
数字1=(数字1%1000)/10;
数字2=(数字2%1000)/10;
数字3=(数字3%1000)/10;
数字4=(数字4%1000)/10;
/*算计*/
总和=第1位+第2位+第3位+第4位;
printf(“答案是:%d\n”,总和);
返回(0);
}
一个问题是
scanf("%d%d%d%d", &digit1,&digit2,&digit3,&digit4);
否则,您只能读取一位数字
看
但是。。。最好这样做
scanf("%d", &number);
sum = 0;
do
{
//get a digit
sum += number % 10;
//remove the digit
number /= 10;
} while (number > 0);
print ("%d", sum);
一个问题是这个
scanf("%d%d%d%d", &digit1,&digit2,&digit3,&digit4);
否则,您只能读取一位数字
看
但是。。。最好这样做
scanf("%d", &number);
sum = 0;
do
{
//get a digit
sum += number % 10;
//remove the digit
number /= 10;
} while (number > 0);
print ("%d", sum);
读取用户输入时,将其作为一个数字读取:
printf("enter four digit integer:\n");
scanf("%d", &digit1,&digit2,&digit3,&digit4);
应该是:
printf("enter four digit integer:\n");
scanf("%d", &number);
接下来,您需要使用
%
和/
运算符从读取的数字中提取各个数字,并最终添加它们。读取用户输入时,您将其作为一个数字读取:
printf("enter four digit integer:\n");
scanf("%d", &digit1,&digit2,&digit3,&digit4);
应该是:
printf("enter four digit integer:\n");
scanf("%d", &number);
接下来,您需要使用
%
和/
运算符从读取的数字中提取各个数字,并最终添加它们。问题在于您的scanf
,它要求您传递的每个参数都有一个格式化程序%d
因此,与此相反:
scanf("%d", &digit1,&digit2,&digit3,&digit4);
您应该有以下内容(如果您单独输入数字,数字之间留有空格):
这将以四种不同的int
s读取。如果希望读入一个整数,然后提取各个数字,那么这就足够了:
scanf("%d", &digit1);
int-scanf(常量字符*格式,…)代码>
返回成功转换和分配的字段数
问题在于您的scanf
,它要求您传递的每个参数都有一个格式化程序%d
因此,与此相反:
scanf("%d", &digit1,&digit2,&digit3,&digit4);
您应该有以下内容(如果您单独输入数字,数字之间留有空格):
这将以四种不同的int
s读取。如果希望读入一个整数,然后提取各个数字,那么这就足够了:
scanf("%d", &digit1);
int-scanf(常量字符*格式,…)代码>
返回成功转换和分配的字段数
#包括
main()
{
int n,rem;
整数和=0;
printf(“输入编号”);
scanf(“%d”和“&n”);
而(n!=0)
{
rem=n%10;
总和+=雷姆;
n=n/10;
}
printf(“总和=%d\n”,总和);
}
#包括
main()
{
int n,rem;
整数和=0;
printf(“输入编号”);
scanf(“%d”和“&n”);
而(n!=0)
{
rem=n%10;
总和+=雷姆;
n=n/10;
}
printf(“总和=%d\n”,总和);
}
当用户只输入4个数字时,输出正确。
当用户添加超过4个no时,则输出不同
#include<stdio.h>
}当用户只输入4个数字时,输出正确。
当用户添加超过4个no时,则输出不同
#include<stdio.h>
}首先,不需要输入四个整数变量
需要这样做
#include <stdio.h>
int main()
{
int num, sum=0;
/*
* Reads a number from user
*/
printf("Enter any number to find sum of its digit: ");
scanf("%d", &num);
/*
* Finds the sum of digits
*/
while(num!=0)
{
/* Find the last digit from num and add to sum */
sum += num % 10;
/* Removes last digit from num as its work has been done*/
num = num / 10;
}
printf("\nSum of digits = %d", sum);
return 0;
}
#包括
int main()
{
int num,sum=0;
/*
*从用户读取一个数字
*/
printf(“输入任意数字以查找其数字总和:”);
scanf(“%d”和&num);
/*
*查找数字的和
*/
while(num!=0)
{
/*从num中查找最后一位数字并添加到sum*/
总和+=num%10;
/*在num的工作完成时从num中删除最后一位*/
num=num/10;
}
printf(“\n位数=%d”,总和);
返回0;
}
首先,不需要在四个整数变量中输入
需要这样做
#include <stdio.h>
int main()
{
int num, sum=0;
/*
* Reads a number from user
*/
printf("Enter any number to find sum of its digit: ");
scanf("%d", &num);
/*
* Finds the sum of digits
*/
while(num!=0)
{
/* Find the last digit from num and add to sum */
sum += num % 10;
/* Removes last digit from num as its work has been done*/
num = num / 10;
}
printf("\nSum of digits = %d", sum);
return 0;
}
#包括
int main()
{
int num,sum=0;
/*
*从用户读取一个数字
*/
printf(“输入任意数字以查找其数字总和:”);
scanf(“%d”和&num);
/*
*查找数字的和
*/
while(num!=0)
{
/*从num中查找最后一位数字并添加到sum*/
总和+=num%10;
/*在num的工作完成时从num中删除最后一位*/
num=num/10;
}
printf(“\n位数=%d”,总和);
返回0;
}
以下是基于我的技术。它是通过数字的数学分解完成的,然后打印出单独的结果。在这里:
#include<stdio.h>
#include<stdlib.h>
int main ()
{ //Code Begins
//Variable Initialization
int digit, dig1, dig2, dig3, dig4,digi, sum;
//Acquiring input
printf("Enter 4-Digit Number:\n");
scanf("%d", &digit);
//Number resolution technique
//Digit at 1000th place
dig1 = (digit/1000);
printf ("Digit at 1000th place is: %d \n", dig1);
//Digit at 100th place
dig2 = (digit-(dig1*1000))/100;
printf ("Digit at 100th place is: %d \n", dig2);
//Digit at 10th place
digi = ((digit/100)*100);
dig3 = (digit-digi)/10;
printf ("Digit at 10th place is: %d \n", dig3);
//Digit at unit place
dig4 = ((digit-((digit/10)*10)));
printf ("Digit at unit place is: %d \n", dig4 );
//Sum of Digits
sum = dig1+dig2+dig3+dig4;
printf ("Sum of digits in the number is: %d \n\n", sum);
//Self Applaud
printf ("Isn't it Awesome ! A big hand of applaud for my technique !!! \n\n\n");
system ("Pause");
return 0;
}
#包括
#包括
int main()
{//代码开始
//变量初始化
整数位数,dig1,dig2,dig3,dig4,digi,sum;
//获取输入
printf(“输入4位数字:\n”);
扫描频率(“%d”和数字);
//数字分辨技术
//第1000位数字
dig1=(数字/1000);
printf(“第1000位的数字为:%d\n”,第1位);
//第100位数字
dig2=(数字-(dig1*1000))/100;
printf(“第100位的数字为:%d\n”,第2位);
//第十位数字
数字=((数字/100)*100);
dig3=(数字digi)/10;
printf(“第10位的数字是:%d\n”,第3位);
//单位位数字
dig4=((数字-((数字/10)*10));
printf(“单元位置的数字为:%d\n”,第4位);
//位数和
sum=dig1+dig2+dig3+dig4;
printf(“数字中的数字总和为:%d\n\n”,总和);
//自鸣得意
printf(“这是不是太棒了!为我的技术鼓掌!!!\n\n\n”);
系统(“暂停”);
返回0;
}
以下是基于我的技术。是唐