C、 每次运行时添加编号
您好,在编码方面相当新,我有一个程序,每次运行该程序时都应该添加一个数字,它计算1+2+3+…(n-1)+n 以及一个if语句,该语句将该值与(n*(n+1))/2进行比较,然后在相同或不同的情况下显示一条消息C、 每次运行时添加编号,c,while-loop,C,While Loop,您好,在编码方面相当新,我有一个程序,每次运行该程序时都应该添加一个数字,它计算1+2+3+…(n-1)+n 以及一个if语句,该语句将该值与(n*(n+1))/2进行比较,然后在相同或不同的情况下显示一条消息 #include <stdio.h> int main(void) { int value = 0, n_data_value, count = 0, second_value; printf("Enter a number\n"); scanf("%lf"
#include <stdio.h>
int main(void)
{
int value = 0, n_data_value, count = 0, second_value;
printf("Enter a number\n");
scanf("%lf", &n_data_value);
while (count < 10) {
value = (1 + value) + (n_data_value - 1) + n_data_value;
printf("%f\n", value);
second_value = (n_data_value * (n_data_value + 1))/2;
printf("The number is %f\n", value);
count = count + 1;
if(value = second_value){
printf("value = %f and second_value = %f", value, second_value);
}
}
return 0;
}
#包括
内部主(空)
{
int值=0,n数据值,计数=0,第二个值;
printf(“输入数字”);
扫描频率(“%lf”、&n\u数据值);
同时(计数<10){
值=(1+值)+(n_数据值-1)+n_数据值;
printf(“%f\n”,值);
第二个_值=(n_数据_值*(n_数据_值+1))/2;
printf(“数字是%f\n”,值);
计数=计数+1;
如果(值=第二个值){
printf(“值=%f和第二个值=%f”,值,第二个值);
}
}
返回0;
}
当我运行它时,我就得到了这个
输入数字3
百万
这个数字是0.000000
百万
这个数字是0.000000
百万
这个数字是0.000000
百万
这个数字是0.000000
百万
这个数字是0.000000
百万
这个数字是0.000000
百万
这个数字是0.000000
百万
这个数字是0.000000
百万
这个数字是0.000000
百万
这个数字是0.000000
在
scanf
/printf
中使用%d
和int
变量
%lf
用于双值。对值
匹配秒值
的测试也是错误的。使用==
测试是否相等
i、 e.变化
if(value = second_value){
到
请注意,在启用警告的情况下编译(-Wall
用于gcc,/W4
用于msvc)会为您标记此选项。我认为您只需要此选项
#include <stdio.h>
int main(void)
{
int value = 0, n_data_value, count = 1, second_value;
printf("Enter a number\n");
scanf("%d", &n_data_value);
while (count <= n_data_value) {//while loop to calculate 1+2+3+...+n
value = value + count;
count = count + 1;
}
second_value = (n_data_value * (n_data_value + 1))/2;//calculates n(n+1)/2
printf("The number is %d\n", second_value);
if(value == second_value){//compares value
printf("value = %d and second_value = %d", value, second_value);
}
return 0;
}
#包括
内部主(空)
{
int值=0,n数据值,计数=1,第二个值;
printf(“输入数字”);
scanf(“%d”、&n\u数据值);
while(count如果你想做一次以上:只需添加如下内容:
#include <stdio.h>
int main(void)
{
int value = 0, n_data_value, count = 1, second_value;
char char_quit='';
do //Infinite loop
{
printf("Enter a number\n");
scanf("%d", &n_data_value);
while (count <= n_data_value) {//while loop to calculate 1+2+3+...+n
value = value + count;
count = count + 1;
}
second_value = (n_data_value * (n_data_value + 1))/2;//calculates n(n+1)/2
printf("The number is %d\n", second_value);
if(value == second_value)//compares value
{
printf("value = %d and second_value = %d", value, second_value);
}
//Ask to continue ?
printf("Do you want to continue ? Y/N \n"); //Y or any other key will force to continue the program
scanf("%c", &char_quit );
}while (char_quit == 'n' || char_quit == 'N');
return 0;
}
#包括
内部主(空)
{
int值=0,n数据值,计数=1,第二个值;
char\u quit='';
do//无限循环
{
printf(“输入数字”);
scanf(“%d”、&n\u数据值);
while(count Hmm我如何在编译器中启用警告?只需添加-wall或?:)如果您是从命令行编译的,请为gcc添加-wall或为msvc添加/W4。如果您使用的是IDE,将有一个生成设置对话框,该对话框接受有效的编译器标记,但如果我想运行该程序更多次,该怎么办?:)当程序运行并修复循环逻辑和数学时,您将在N=65535
之后发现公式和循环值之间存在差异。请参阅
#include <stdio.h>
int main(void)
{
int value = 0, n_data_value, count = 1, second_value;
char char_quit='';
do //Infinite loop
{
printf("Enter a number\n");
scanf("%d", &n_data_value);
while (count <= n_data_value) {//while loop to calculate 1+2+3+...+n
value = value + count;
count = count + 1;
}
second_value = (n_data_value * (n_data_value + 1))/2;//calculates n(n+1)/2
printf("The number is %d\n", second_value);
if(value == second_value)//compares value
{
printf("value = %d and second_value = %d", value, second_value);
}
//Ask to continue ?
printf("Do you want to continue ? Y/N \n"); //Y or any other key will force to continue the program
scanf("%c", &char_quit );
}while (char_quit == 'n' || char_quit == 'N');
return 0;
}