题目字太多了略🤣有问题欢迎留言讨论~
IDE: Xcode
6-1
#include <stdio.h>
int main()
{
const int SIZE = 26;
char alphabet[SIZE];
printf("Please enter 26 letters:");
for(int i = 0; i < SIZE; i++){
scanf("%c", &alphabet[i]);
}
getchar();
//字符输出
for (int i = 0; i < SIZE; i++){
printf("%c", alphabet[i]);
}
printf("\n");
return 0;
}
Output:
6-2
#include <stdio.h>
int main()
{
for(int i = 1; i <= 5; i++){
for(int j = 1; j <= i; j++){
printf("$");
}
printf("\n");
}
return 0;
}
Output:
6-3
#include <stdio.h>
int main()
{
for(int i = 1; i <= 6; i++){
char a = 70; //F
for (int j = 1; j <= i; j++,a--){
printf("%c", a);
}
printf("\n");
}
return 0;
}
Output:
6-4
#include <stdio.h>
int main()
{
char a = 65; //A
for(int i = 1; i <= 6; i++){
for (int j = 1; j <= i; j++,a++){
printf("%c", a);
}
printf("\n");
}
return 0;
}
Output:
6-5
#include <stdio.h>
int main()
{
int line;
char letter;
int i,j,k,m;
printf("please enter a letter to build pyramid figure.\n");
scanf("%c", &letter);
printf("letter pyramid figure as following:\n");
line = letter - 'A';
for(i = 0; i <= line; i++){
char print_letter = 'A' - 1;
for(j = line; j > i; j--){
printf(" ");
}
for(k = 0; k <= i; k++){
printf("%c", ++print_letter);
}
for(m = 1; m <= i; m++){
printf("%c", --print_letter);
}
printf("\n");
}
}
Output:
6-6
#include <stdio.h>
int main()
{
int row;
printf("This table will show number's square and cube.\n");
printf("First, please enter the number of rows in the table:");
scanf("%d", &row);
int table[row];
printf("Second, please enter the numbers:");
for(int i = 0;i < row; i++){
scanf("%d", &table[i]);
}
printf("____________________________\n");
printf("| number | square | cube |\n");
printf("----------------------------\n");
for(int i = 0; i < row; i++){
printf("|%8d|%8d|%8d|\n", table[i], table[i] * table[i], table[i] * table[i] * table[i]);
printf("----------------------------\n");
}
return 0;
}
Output:
6-7
#include <stdio.h>
int main()
{
char word[40];
int length;
printf("Please enter a word:");
scanf("%s", word);
length = strlen(word); //编译会有warning,因为strlen是unsigned long(const char*)
printf("Now reverse the word:");
while(length > 0){
length--;
printf("%c", word[length]);
}
printf("\n");
}
Output:
6-8
#include <stdio.h>
int main()
{
float a, b;
while(1){
printf("Please enter two numbers (a & b):");
if (scanf("%f %f", &a, &b)){
printf("(a - b)/(a * b) = %f \n", (a - b)/(a * b));
}else{
printf("Quit.\n");
break; //break的使用见第七章
}
}
return 0;
}
Output:
6-9
#include <stdio.h>
float calculate(float a, float b);
int main()
{
float a, b;
while(1){
printf("Please enter two numbers (a & b):");
if (scanf("%f %f", &a, &b)){
printf("(a - b)/(a * b) = %f \n", calculate(a,b));
}else{
printf("Quit.\n");
break;
}
}
}
float calculate(float a, float b)
{
return (a - b)/(a * b);
}
Output:
6-10
#include <stdio.h>
int main()
{
int upper_limit, lower_limit;
printf("Enter lower and upper integer limits:");
scanf("%d %d", &lower_limit, &upper_limit);
while(lower_limit < upper_limit){
int sum = 0;
for(int i = lower_limit; i <= upper_limit; i++){
sum += i * i;
}
printf("The sums of the squares from %d to %d is %d\n", lower_limit * lower_limit, upper_limit * upper_limit, sum);
printf("Enter next set of limits:");
scanf("%d %d", &lower_limit, &upper_limit);
}
printf("Done\n");
return 0;
}
Output:
6-11
#include <stdio.h>
#define LENGTH 8
int main()
{
int array[LENGTH];
int i;
printf("Please enter %d integers:", LENGTH);
for(i = 0; i < LENGTH; i++){
scanf("%d", &array[i]);
}
printf("Reverse these integers:");
for(i = LENGTH; i > 0; ){
i--;
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
Output:
6-12
#include <stdio.h>
int main()
{
int n;
printf("please enter the length of the sequence:");
scanf("%d", &n);
while (n > 0) {
int symbol = -1;
double sequence_a = 0, sequence_b = 0;
for(int i = 1; i <= n; i++){
symbol *= -1;
sequence_a += 1.0 / i;
sequence_b += symbol * 1.0 / i;
}
printf("1.0 + 1.0/2.0 + 1.0/3.0 + 1.0/4.0 +... + 1.0/%d.0 = %f\n", n, sequence_a); //趋近于ln(N)
printf("1.0 - 1.0/2.0 + 1.0/3.0 - 1.0/4.0 +... + 1.0/%d.0 = %f\n", n, sequence_b);
printf("please enter the length of the sequence:");
scanf("%d", &n);
}
printf("done.\n");
return 0;
}
Output:
6-13
#include <stdio.h>
int main()
{
int i;
int a[8];
a[0] = 1;
for(i = 1; i < 8; i++){
a[i] = a[i-1] * 2;
}
i = 0;
do{
printf("2^%d = %d\n", i, a[i]);
i++;
}while(i < 8);
return 0;
}
Output:
6-14
#include <stdio.h>
int main()
{
double element[8],sum[8];
int i, j;
sum[0] = 0;
printf("Please enter 8 element:");
for(i = 0; i < 8; i++){
scanf("%lf", &element[i]);
if(i == 0)
sum[i] = element[i];
else
sum[i] = sum[i - 1] + element[i];
}
for(j = 1; j <= 2; j++){ //两行输出
for(i = 0; i < 8; i++){
if(j == 1)
printf("%6.2f", element[i]);
else
printf("%6.2f", sum[i]);
}
printf("\n");
}
return 0;
}
Output:
6-15
#include <stdio.h>
int main()
{
int i = 0;
char enter[255];
printf("please enter:\n");
scanf("%c", &enter[i]);
while('\n' != enter[i]){ //检查到输入换行符,就退出scanf
i++;
scanf("%c", &enter[i]);
}
for( ; i > 0; ){ //倒序打印
i--;
printf("%c", enter[i]);
}
printf("\n");
return 0;
}
Output:
6-16
#include <stdio.h>
int main()
{
double deirdre, daphne;
int i;
deirdre = 100;
daphne = 100;
i = 0;
while (deirdre <= daphne){
i++;
daphne += 100 * 0.1;
deirdre *= 1.05;
}
printf("after %d years, Deirdre's investment amount is %.2lf dollars, which overnumbers Daphne's. ", i, deirdre);
printf("Daphne's investment amount is %.2lf dollars.\n ", daphne);
return 0;
}
Output:
6-17
#include <stdio.h>
int main()
{
int i = 0;
double money = 100;
while(money > 0){
i++;
money = money * 1.08 - 10;
}
printf("After %d years, Chucke Lucky will take all the money.\n", i);
return 0;
}
Output:
6-18
#include <stdio.h>
#define DUNBAR_NUM 150
int main()
{
int friend = 5;
int i = 0;
printf("week friends' num\n");
while(friend <= DUNBAR_NUM){
i++;
friend = (friend - i) * 2;
printf("%-8d %d\n", i, friend);
}
printf("\n");
return 0;
}
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
#define STOP '|'
int main()
{
char c;
char prev;
long n_chars = 0;
int n_line = 0;
int n_word = 0;
int p_lines = 0;
bool inword = false;
prev = '\n';
while((c = getchar()) != STOP ){
n_chars++;
if (c == '\n')
n_line++;
if (!isspace(c) && !inword){
inword = true;
n_word++;
}
if (isspace(c) && inword)
inword = false;
prev = c;
}
if(prev != '\n')
p_lines =1;
printf("%ld %d %d %d",n_chars, n_word, n_line, p_lines);
return 0;
}
Output: