设为首页 加入收藏

TOP

C语言的10大基础算法(二)
2019-09-06 00:26:13 】 浏览:129
Tags:语言 基础 算法
s("%d",&rows);
for(i=1;i<=rows;++i)
{
for(space=1;space<=rows-i;++space)
{
printf(" ");
}
while(k!=2*i-1)
{
printf("* ");
++k;
}
k=0;
printf("\n");
}
return 0;
}
用 * 打印倒金字塔

* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
源代码:

#include<stdio.h>
int main()
{
int rows,i,j,space;
printf("Enter number of rows: ");
scanf_s("%d",&rows);
for(i=rows;i>=1;--i)
{
for(space=0;space<rows-i;++space)
printf(" ");
for(j=i;j<=2*i-1;++j)
printf("* ");
for(j=0;j<i-1;++j)
printf("* ");
printf("\n");
}
return 0;
}


5、简单的加减乘除计算器

 

源代码:

/* Source code to create a simple calculator for addition, subtraction, multiplication and division using switch...case statement in C programming. */

# include <stdio.h>
int main()
{
char o;
float num1,num2;
printf("Enter operator either + or - or * or divide : ");
scanf_s("%c",&o);
printf("Enter two operands: ");
scanf_s("%f%f",&num1,&num2);
switch(o) {
case '+':
printf("%.1f + %.1f = %.1f",num1, num2, num1+num2);
break;
case '-':
printf("%.1f - %.1f = %.1f",num1, num2, num1-num2);
break;
case '*':
printf("%.1f * %.1f = %.1f",num1, num2, num1*num2);
break;
case '/':
printf("%.1f / %.1f = %.1f",num1, num2, num1/num2);
break;
default:
/* If operator is other than +, -, * or /, error message is shown */
printf("Error! operator is not correct");
break;
}
return 0;
}
结果输出:

Enter operator either + or - or * or divide : -
Enter two operands: 3.4
8.4
3.4 - 8.4 = -5.0


6、检查一个数能不能表示成两个质数之和

 

源代码:

#include <stdio.h>
int prime(int n);
int main()
{
int n, i, flag=0;
printf("Enter a positive integer: ");
scanf_s("%d",&n);
for(i=2; i<=n/2; ++i)
{
if (prime(i)!=0)
{
if ( prime(n-i)!=0)
{
printf("%d = %d + %d\n", n, i, n-i);
flag=1;
}

}
}
if (flag==0)
printf("%d can't be expressed as sum of two prime numbers.",n);
return 0;
}
int prime(int n) /* Function to check prime number */
{
int i, flag=1;
for(i=2; i<=n/2; ++i)
if(n%i==0)
flag=0;
return flag;
}
结果输出:

 

 

Enter a positive integer: 34
34 = 3 + 31
34 = 5 + 29
34 = 11 + 23
34 = 17 + 17


7、用递归的方式颠倒字符串

 

源代码:

/* 不使用字符串反转用户输入的句子的示例. */

#include <stdio.h>
void Reverse();
int main()
{
printf("Enter a sentence: ");
Reverse();
return 0;
}
void Reverse()
{
char c;
scanf_s("%c",&c);
if( c != '\n')
{
Reverse();
printf("%c",c);
}
}
结果输出:

Enter a sentence: margorp emosewa
awesome program


8、实现二进制与十进制之间的相互转换

 

/* c根据用户输入的数据将二进制数转换成十进制数或十进制数转换成二进制数的程序源代码. */

#include <stdio.h>
#include <math.h>
int binary_decimal(int n);
int decimal_binary(int n);
int main()
{
int n;
char c;
printf("Instructions:\n");
printf("1. 输入字母'd'将二进制转换为十进制.\n");
printf("2. 输入字母'b'将十进制转换为二进制.\n");
scanf_s("%c",&c);
if (c =='d' || c == 'D')
{
printf("输入二进制数: ");
scanf_s("%d", &n);
printf("%d in binary = %d in decimal", n, binary_decimal(n));
}
if (c =='b' || c == 'B')
{
printf("输入一个十进制数字: ");
scanf_s("%d", &n);
printf("%d in decimal = %d in binary", n, decimal_binary(n));
}
return 0;
}

int decimal_binary(int n) /* 函数将十进制转换为二进制。*/
{
int rem, i=1, binary=0;
while (n!=0)
{
rem=n%2;
n/=2;
binary+=r

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇从零开始学C语言 下一篇my first blog by cnblogs

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目