6-1存储并输出26个字母
int main(void)
//{
// char arr[SIZE];
// for (int i = 0; i < 26; i++)
// {
// arr[i] = 'a' + i;
// }
//
// for (int j = 0; j < 26; j++)
// {
// printf("%c",arr[j]);
// }
// return 0;
//}
6-2嵌套循环打印字符,打印结果如下所示
int main(void)
{
for (int i = 1; i <= 5; i++)//非数组,不要从0开始
{
for (int j = 1; j <= i; j++)
printf("$");
printf("\n");
}
return 0;
}
6-3嵌套循环打印如下字符
int main(void)
{
char ch = 'F';
for (int i = 1; i < 7; i++)
{
for (int j = 0; j < i; j++)
printf("%c", ch-j);
printf("\n");
}
return 0;
}
6-4循环嵌套打印如下字符
int main(void)
{
int j = 0;
char ch = 'A';
for (int i = 1; i < 7; i++) //行数,不能变
{
for (j = 0; j < i; j++)//列数不能变
printf("%c", ch+j);
ch += i; //每一行不仅有个换行符,并且每一行第一个值变了
printf("\n");
}
return 0;
}
6-5提示用户输入一个大写字母,以金字塔格式打印字母
int main(void)
{
char user;
char init = 'A';
char end = 'A';
printf("请输入一个大写字母:");
scanf("%c", &user);
const int LINE = user - 'A';//行数确定
const int NUM = 2 * LINE + 1;//总列数目的确定,保证字母居中所必须的信息
for (int i = 0; i < LINE + 1; i++)//行数的循环准备
{
for (int j = LINE-i; j >= 0; j--)//前一半空格的循环
printf("%c", 32);
for (int k = 0; k <= i; k++)//前一半字母的循环
printf("%c", init + k);
for (int m = i-1; m>=0; m--)//后一半字母的循环
printf("%c", init + m);
for (int m = LINE; m >= 0;m--)//后一半空格的循环
printf("%c", 32);
printf("\n");
}
return 0;
}
6-6打印一个表格,每一行显示一个整数极其平方立方,要求用户输入整数上下界
int main(void)
{
int start, end;
printf("请输入你要打印数字的上下限:\n");
printf("最小数字为:");
scanf("%d", &start);
printf("最大数字为:");
scanf("%d", &end);
printf(" num dou tri\n");
for (int i = start; i <= end; i++)
{
printf("%3d %3d %3d\n", i, i * i, i * i * i);
}
return 0;
}
6-7 将单词读入后并倒序打印字符
int main(void)
{
int status;
char word[100];
printf("请输入一个单词(输入非字母退出):");
status = scanf("%s", word);
int i = strlen(word);
for (; i >= 0; i--)
printf("%c", word[i]);
int j = scanf("%s", word);
return 0;
}
6-8用户输入两浮点数,打印两数差除以两数的乘积,并循环输入。
int main(void)
{
double num_1, num_2;
int status;
printf("请输入两个浮点数(输入非数字结束):");
while (scanf("%lf %lf", &num_1, &num_2) == 2)
{
double result = (num_1 - num_2) / (num_1 * num_2);
printf("结果为:%lf\n", result);
printf("请输入两个浮点数(输入非数字结束):");
}
printf("程序结束!");
return 0;
}
6-9 采用一个函数重新写6-8题。
# define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
double CALCULATE(double x, double y);int main(void)
{
double num_1, num_2;
printf("请输入两个浮点数:");
while (scanf("%lf %lf", &num_1, &num_2) == 2)
{
double result = CALCULATE(num_1,num_2);
printf("结果为:%lf\n", result);
printf("请输入两个浮点数:");
}
printf("程序结束");
return 0;
}
double CALCULATE(double x, double y)
{
double result = (x - y) / (x * y);
return result;
}
6-10要求用户输入上下限,并且输出上下限内所有平方和,打印如下所示:
int main(void)
{
int lower, upper;
int sum = 0;
printf("Enter lower and upper integer limits:");
scanf("%d %d", &lower, &upper);
while (lower < upper)
{
for (int i = lower; i <= upper; i++)
sum += i * i;
printf("The sum of the squares from %d to %d is %d\n", lower * lower, upper * upper, sum);
printf("Enter next set of limits:");
scanf("%d %d", &lower, &upper);
}
printf("Done");
return 0;
}
6-11 读入8个数,倒序打印
int main(void)
{
int arr[8];
printf("请输入8个数字:");
for (int i = 0; i < 8; i++)
scanf("%d", &arr[i]);
for (int j = 7; j >= 0; j--)
printf("%d",arr[j]);
return 0;
}
6-12 考虑两个无限序列相加的和:
int main(void)
{
int user;
int i, j;
double sum = 0;
printf("请输入你想要计算的项数:");
scanf("%d", &user);
while (user > 0)
{
if (user % 2 == 0)
{
for ( i = 1,sum=0; i < user; i += 2)
sum += 1.0 / i;
sum = sum * 2;
printf("结果为%lf\n", sum);
}
if (user % 2 == 1)
{
for ( j = 1,sum=0; j <= user; j += 2)
sum += 1.0 / j;
sum = sum * 2;
printf("结果为%lf\n", sum);
}
printf("请输入你想要计算的项数:");
scanf("%d", &user);
}
printf("程序结束");
return 0;
}
6-13 数组8个数字,分别是2的幂次数,最后显示出来
int main(void)
{
int arr[8];
int num = 1;
arr[0] = 1;
int j = 0;
for (int i = 1; i < 8; i++)
{
num *= 2;
arr[i] = num;
}
do
{
printf("%4d", arr[j]);
j++;
} while (j < 8);
return 0;
}
6-14 两个8位double数组,第一个是用户输入,第二个数组分别是前n个数字相加
int main(void)
{
double arr_1[8], arr_2[8];
printf("请输入8个数字:");
for (int i = 0; i < 8; i++)
{
scanf("%lf", &arr_1[i]);
arr_2[i] = arr_1[i];
}
for (int i = 1; i < 8; i++)
{
arr_2[i] = arr_2[i] + arr_2[i - 1];
}
for (int i = 0; i < 8; i++)
printf("%6.2lf", arr_1[i]);
printf("\n");
for (int i = 0; i < 8; i++)
printf("%6.2lf", arr_2[i]);
printf("\n");
return 0;
}
6-15.读取一行输入,倒序输出
int main(void)
{
char arr[255];
printf("请输入一串字符串:");
scanf("%s", arr);
for (int i = strlen(arr); i >=0; i--)
printf("%c", arr[i]);
return 0;
}
6-16投资问题
int main(void)
{
const int cash = 100;
const double Daphne = 0.1;
const double Deirdre = 0.05;
double money_Da=100, money_De=100;
int i = 1;
for ( i = 1; money_De <= money_Da; i++)
{
money_Da = money_Da + cash * Daphne;
money_De =money_De + money_De * Deirdre;
}
printf("需要%d年Deirdre的存款会超过Daphne的存款\n", i);
printf("Deirdre的存款是%lf,Daphne的存款是%lf。", money_De, money_Da);
return 0;
}
6-17 投资问题
int main(void)
{
/*double interest = 0.08;*/
double cash = 100;
int i = 0;
double left = 100;
while(left>0)
{
cash = left + left * 0.08;
left = cash - 10;
i++;
}
printf("需要%d年才能把钱取完", i);
return 0;
}
6-18 最多朋友
int main(void)
{
int num = 5;
int week = 1;
while (num <= 150)
{
num = (num - week) * 2 ;
printf("第%d周他有%d个朋友\n", week, num);
week++;
}
printf("需要%d周会达到最大数",week-1);
return 0;
}