【发布时间】:2018-08-15 09:12:13
【问题描述】:
嗨,我真的是 C 的新手。
我正在做一个练习,我必须编写一个程序,该程序接受两个输入整数(包括 -10 和 10 之间的整数)并输出总和。
但是,显示的从 -10 到 10 的所有数字都将显示为它们各自的单词,任何其他数字都将是数字数字。
我使用的唯一命令是 if's、else if's、else、printf、scanf、int。
一个例子是:
Enter your two integers: 9 2
nine + two = eleven
Enter your two integers: -9 4
negative nine + four = negative five
Enter your two integers: -10 -2
negative ten + negative two = -12
感谢任何帮助。这是我到目前为止所做的,但我不确定,因为它看起来很乏味,但我的朋友说她做的相当快。
#include <stdio.h>
int main(void){
int number1;
int number2;
int sum;
printf("Please enter two integers: ");
scanf("%d",&number1,&number2);
sum = number1 + number2
if (number1 > 0 && number2 > 0) {
if (number1 == 1 && number2 == 1) {
printf("one + one = two");
}
}
}
【问题讨论】:
-
不要使用
scanf()来读取用户输入。*scanf()函数系列用于从文件中读取格式良好的数据,而不是潜在的格式错误的用户输入。 (为此,使用fgets()读取整行并使用例如strtol解析内存)。 -- 如果你确实使用scanf(),总是检查它的返回值。如果用户输入的不是整数,您的变量不会被初始化。 -- 您只读取一个整数(格式字符串中只有一个%d)。您的number2始终未定义。 -- 考虑定义一个单词数组,并使用来自用户的整数作为这些数组的索引。 -
scanf()返回成功读取的项目数。你想读取两个值,所以如果scanf()没有返回2,那么你应该中止程序。 ——你学过switch吗?那也行。 -
如果没问题,你可以在大约 20 个 if 语句中完成它?您只需检查数字是否为负,打印
-,检查数字 0 到 20,然后打印它们各自的单词,将其包装在void printwordnum(int n)之类的函数中,然后为每个数字调用 3 次。 -
或者如果你不能使用函数,只需复制粘贴代码 3 次:3
-
你确定你至少不能使用函数吗?这个任务对我来说似乎毫无意义,除非这个想法是教你如何不编写计算机程序。
标签: c