在我的程序中,我需要:
自从我修改了代码之后,当我通过字符来定义'%e'和'%o'时,我无法得到结果。
以下是我的原始代码:
- 询问用户一个数字,然后显示该数字,接着将其显示为十进制数、无符号八进制数、十六进制数、浮点数、保留两位小数的浮点数、保留三位小数的浮点数、带有带符号e和E的浮点数以及字符串。
- 对于字符也要做同样的操作。
自从我修改了代码之后,当我通过字符来定义'%e'和'%o'时,我无法得到结果。
以下是我的原始代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int usernumber;
int main(void)
{
int usernumber;
puts("Please input a number of your choice:");
scanf("%d", &usernumber);
printf("%d %i %f %.2f %.3f %e %E", &usernumber);
return 0;
}
这是我的新代码(于2014年10月28日修订):
int usernumber ;
char usercharacter;
int main(void)
{
int (usernumber);
int h1 = usernumber;
int o1 = usernumber;
int E1 = usernumber;
int e1 = usernumber;
char c1 = usernumber;
{
puts("\n\n------------>Please input a number of your choice:");
scanf( "%d",&usernumber);
printf("%d %i %f %.2f %.3f ", usernumber, usernumber, (float) usernumber, (float) usernumber, (float) usernumber);
printf(" %c"), c1;
printf(" %X ", h1);
printf(" %o ", o1);
printf(" %E ", E1);
printf(" %e \n ", e1);
}
char (usercharacter);
int h2 = usercharacter;
int o2 = usercharacter;
int E2 = usercharacter;
int e2 = usercharacter;
char c2 = usercharacter;
{
puts("\n------------>Please input a character of your choice:");
scanf( " %c",&usercharacter);
printf("%d %i %f %.2f %.3f", usercharacter, usercharacter, (float) usercharacter, (float) usercharacter, (float) usercharacter);
printf(" %c"), c2;
printf(" %X ", h2);
printf(" %o ", o2);
printf(" %E ", E2);
printf(" %e \n ", e2);
}
}
(10.30.14)
我再次更新了我的代码,使用了全新的格式。现在我遇到了麻烦,第二个函数无法正确处理第一个函数中的小数。虽然这个作业已经晚交了,我会因此失分,但出于好奇心,我仍在努力寻找解决方案。如果有人能提供任何建议或解释为什么会出现这种情况,请随意留言!
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char user_input[4200]; // The character string used to pull my integers from.
{
int input2integer;
float input2float;
puts("\n*----> Please input a number of your choice: <----*");
system("COLOR 2");
scanf("%s", user_input);
input2integer = atoi(user_input); // Used to translate the character input into an integer.
input2float = atof(user_input); //Used to translate the character input into a float.
printf("Your input was %s\nWhich could be interpreted in the following ways:\n", user_input);
printf("int = %i\n", input2integer);
printf("dec = %d\n", input2integer);
printf("oct = %o\n", input2integer);
printf("hex = %X\n", input2integer);
printf("float = %f\n", input2float);
printf("two digit float = %.2f\n", input2float);
printf("three digit float = %.3f\n", input2float);
printf("e float = %e\n", input2float);
printf("E float = %E\n", input2float);
printf("char = %c\n", input2integer);
printf("string = %s\n", user_input);
}
char user_input_2[4200];
{
int input2integer_2;
float input2float_2;
puts("\n*----> Please input a character of your choice: <----*");
system("COLOR 2");
scanf("%s", user_input_2);//scans for a string and throws the value into the input array
input2integer_2 = atoi(user_input_2);//converts the input array into an integer
input2float_2 = atof(user_input_2);//converts the input array into a float
printf("The Character selected was was %s\nThe Following are equivalent:\n", user_input_2);
printf("int = %i\n", user_input_2);
printf("dec = %d\n", user_input_2);
printf("oct = %o\n", user_input_2);
printf("hex = %X\n", user_input_2);
printf("float = %f\n", input2integer_2); // Unfortunately, despite taking extra time on this,
printf("two digit float = %.2f\n", input2integer_2); // I failed to prevent this function from carrying the float from the one before.
printf("three digit float = %.3f\n", input2integer_2);
printf("e float = %e\n", input2integer_2);
printf("E float = %E\n", input2integer_2);
printf("char = %c\n", user_input_2);
printf("string = %s\n", user_input_2);
}
return (0);
(11.1.14)
这是该程序的最终版本,完美地运行起来了!
int main(void)
{
char user_input[4200]; // The character string used to pull my integers from.
{
int input2integer;
float input2float;
puts("\n*----> Please input a number of your choice: <----*");
system("COLOR 2");
scanf("%s", user_input);
input2integer = atoi(user_input); // Used to translate the character input into an integer.
input2float = atof(user_input); //Used to translate the character input into a float.
printf("Your input was %s\nWhich could be interpreted in the following ways:\n", user_input);
printf("int = %i\n", input2integer);
printf("dec = %d\n", input2integer);
printf("oct = %o\n", input2integer);
printf("hex = %X\n", input2integer);
printf("float = %f\n", input2float);
printf("two digit float = %.2f\n", input2float);
printf("three digit float = %.3f\n", input2float);
printf("e float = %e\n", input2float);
printf("E float = %E\n", input2float);
printf("char = %c\n", input2integer);
printf("string = %s\n", user_input);
}
char user_input_2[4200];
{
int input2integer_2;
double input2float_2;
puts("\n*----> Please input a character of your choice: <----*");
system("COLOR 2");
scanf("%s", user_input_2);
input2integer_2 = atoi(user_input_2);
input2float_2 = atof(user_input_2);
input2integer_2 = user_input_2[0]; // *THESE* two lines of code caused me more trouble than everything I have done in this class combined.
input2float_2 = input2integer_2; // After a few very sleepless nights, and a massive migraine from staring at screens, I figured them out.
printf("The Character selected was was %s\nThe Following are equivalent:\n", user_input_2);
printf("int = %i\n", input2integer_2);
printf("dec = %d\n", input2integer_2);
printf("oct = %o\n", input2integer_2);
printf("hex = %X\n", input2integer_2);
printf("float = %f\n", input2float_2);
printf("two digit float = %.2f\n", input2float_2);
printf("three digit float = %.3f\n", input2float_2);
printf("e float = %e\n", input2float_2);
printf("E float = %E\n", input2float_2);
printf("char = %c\n", user_input_2[0]);
printf("string = %s\n", user_input_2);
}
return (0);
}
printf("%d %i %f %.2f %.3f %e %E", usernumber, usernumber, (double) usernumber, (double) usernumber, (double) usernumber, (double) usernumber, (double) usernumber);
- chux - Reinstate Monica<stdlib.h>
或<string.h>
。您似乎错过了八进制和十六进制格式(以及其他人诊断的问题)。您应该用换行符终止输出行。我有点好奇您打算如何将字符打印为浮点数。 - Jonathan Lefflermain()
中的局部变量所隐藏。既然它们没有被使用,那么你可以将它们删除。局部变量更好;全局变量有时是必要的,但在这个程序中不需要。 - Jonathan Leffler