#include <stdio.h>
//9.打印字母a~g
#define TEN 'g'
int main(void)
{
int n = 'a'-1;
while (n++ < TEN)
printf("%5c", n);
printf("\n");
return 0;
}
1.编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时间。
使用#define或const创建一个表示60的符号常量或const变量。通
过while循环让用户重复输入值,直到用户输入小于或等于0的值才停止
循环。
/*
1.编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时间。
使用#define或const创建一个表示60的符号常量或const变量。通
过while循环让用户重复输入值,直到用户输入小于或等于0的值才停止
循环。
*/
#include<stdio.h>
int main(void)
{
const int sixtheen = 60;
int inputMin = 1;
while(inputMin>0){
printf("请输入要转换的分钟数\n");
scanf("%d",&inputMin);
if(inputMin <= 0){
break;
}
printf("%d分钟就是%d小时%d分钟\n\n",inputMin,inputMin/sixtheen,inputMin%sixtheen);
}
printf("程序退出\n");
}
2.编写一个程序,提示用户输入一个整数,然后打印从该数到比该
数大10的所有整数(例如,用户输入5,则打印5~15的所有整数,包
括5和15)。要求打印的各值之间用一个空格、制表符或换行符分开。
java
/*
2.编写一个程序,提示用户输入一个整数,然后打印从该数到比该
数大10的所有整数(例如,用户输入5,则打印5~15的所有整数,包
括5和15)。要求打印的各值之间用一个空格、制表符或换行符分开。
*/
#include<stdio.h>
int main(void)
{
int i;
int o;
printf("请输入一个整数\n");
scanf("%d",&i);
o = i+11;
printf("开始输出\n");
for(i;i<o;i++){
printf("%d\n",i);
}
}
java
/*
3.编写一个程序,提示用户输入天数,然后将其转换成周数和天
数。例如,用户输入18,则转换成2周4天。以下面的格式显示结果:
18 days are 2 weeks, 4 days.
通过while循环让用户重复输入天数,当用户输入一个非正值时
(如0或-20),循环结束。
*/
#include<stdio.h>
int main(void)
{
const int week = 7;
int days = 0;
while(1){
printf("请输入要计算的天数\n");
scanf("%d",&days);
if(days<=0){
printf("输入的数值非法!\n");
break;
}
printf("%d天是%d周%d天\n",days,days/week,days%week);
}
}
java
/*
4.编写一个程序,提示用户输入一个身高(单位:厘米),并分别
以厘米和英寸为单位显示该值,允许有小数部分。程序应该能让用户
重复输入身高,直到用户输入一个非正值。其输出示例如下:
Enter a height in centimeters: 182
182.0 cm = 5 feet, 11.7 inches
Enter a height in centimeters (<=0 to quit): 168.7
168.0 cm = 5 feet, 6.4 inches
Enter a height in centimeters (<=0 to quit): 0
bye
feet = 30.48厘米
英寸 = 2.54厘米
*/
#include<stdio.h>
int main(void)
{
float tall;
while(1)
{
printf("请输入你的身高单位cm,输入值小于0则退出程序:\n");
scanf("%f",&tall);
if(tall<=0){
printf("程序退出\n");
break;
}
printf("%.1f cm = %d feet,%.1f inches\n",tall,(int)(tall/30.48),tall/2.54);
}
}
java
#include <stdio.h>
/*
5.修改程序addemup.c(程序清单5.13),你可以认为addemup.c是
计算20天里赚多少钱的程序(假设第1天赚$1、第2天赚$2、第3天赚
$3,以此类推)。修改程序,使其可以与用户交互,根据用户输入的
数进行计算(即,用读入的一个变量来代替20)。
*/
int main(void) /* 计算前20个整数的和 */
{
int count, sum,num; /* 声明 [1] */
count = 0; /* 表达式语句 */
sum = 0; /* 表达式语句 */
while(1){
printf("请输入一个要求和的数\n");
scanf("%d",&num);
if(num <= 0){
printf("输入非法,程序退出");
break;
}
while (count++ < num)/* 迭代语句 */
{
sum = sum + count;
}
printf("sum = %d\n", sum); /* 表达式语句 [2] */
count =0;
sum = 0;
}
return 0; /* 跳转语句 */
}
java
#include <stdio.h>
/*
6.修改编程练习5的程序,使其能计算整数的平方和(可以认为第1
天赚$1、第2天赚$4、第3天赚$9,以此类推,这看起来很不错)。C没
有平方函数,但是可以用n * n来表示n的平方。
*/
int main(void) /* 计算前20个整数的和 */
{
int count, sum,num; /* 声明 [1] */
count = 0; /* 表达式语句 */
sum = 0; /* 表达式语句 */
while(1){
printf("请输入一个要求平方和的数\n");
scanf("%d",&num);
if(num <= 0){
printf("输入非法,程序退出");
break;
}
while (count++ < num)/* 迭代语句 */
{
sum = sum + count*count; //修改加法为求平方和
}
printf("sum = %d\n", sum); /* 表达式语句 [2] */
count =0;
sum = 0;
}
return 0; /* 跳转语句 */
}
java
/*
7.编写一个程序,提示用户输入一个double类型的数,并打印该数
的立方值。自己设计一个函数计算并打印立方值。main()函数要把用户
输入的值传递给该函数。
*/
#include<stdio.h>
double getCount(double d);
int main(void)
{
double inputDouble;
double a;
printf("请输入一个double类型的数\n");
scanf("%lf",&inputDouble);//这里用%f无法接收到用户输入
printf("输入数的立方值为:%e\n",getCount(inputDouble));
return 0;
}
double getCount(double d)
{
return d*d*d;
}
java
/*
8.编写一个程序,显示求模运算的结果。把用户输入的第1个整数
作为求模运算符的第2个运算对象,该数在运算过程中保持不变。用户
后面输入的数是第1个运算对象。当用户输入一个非正值时,程序结
束。其输出示例如下:
This program computes moduli.
Enter an integer to serve as the second operand: 256
Now enter the first operand: 438
438 % 256 is 182
Enter next number for first operand (<= 0 to quit):
1234567
1234567 % 256 is 135
Enter next number for first operand (<= 0 to quit): 0
Done
*/
#include<stdio.h>
int main(void)
{
int first,next;
printf("请输入一个整数作为模\n");
scanf("%d",&first);
while(1){
printf("请输入一个被模数,输入值<=0退出程序\n");
scanf("%d",&next);
if(next<=0)
{
printf("Done\n");
break;
}
printf("%d%%%d的值为%d\n",next,first,next/first);
}
}
java
/*
9.编写一个程序,要求用户输入一个华氏温度。程序应读取double
类型的值作为温度值,并把该值作为参数传递给一个用户自定义的函
数Temperatures()。该函数计算摄氏温度和开氏温度,?以小数点后面
两位数字的精度显示3种温度。要使用不同的温标来表示这3个温度
值。下面是华氏温度转摄氏温度的公式:
摄氏温度 = 5.0 / 9.0 * (华氏温度 - 32.0)
开氏温标常用于科学研究,0表示绝对零,代表最低的温度。下面
是摄氏温度转开氏温度的公式:
开氏温度 = 摄氏温度 + 273.16
Temperatures()函数中用const创建温度转换中使用的变量。在main()
函数中使用一个循环让用户重复输入温度,当用户输入 q 或其他非数
字时,循环结束。scanf()函数返回读取数据的数量,所以如果读取数字
则返回1,如果读取q则不返回1。可以使用==运算符将scanf()的返回值
和1作比较,测试两值是否相等。*/
#include<stdio.h>
void Temperatures(double tem);
int main(void)
{
double tem;
while(1){
printf("请输入华氏温度,输入非预期值则退出程序\n");
if(scanf("%lf",&tem)!=1){
break;
}
Temperatures(tem);
}
}
void Temperatures(double tem){
const double C = 5.0/9.0;
const double K = 273.16;
printf("你输入的华氏温度为%lf\n",tem);
printf("你输入的摄氏度为%lf\n",C*(tem-32));
printf("你输入的华氏温度为%lf\n",C*(tem-32)+K);
}