c语言打印数字
⑴ c语言打印数字图形
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d",j);
for(j=i-1;j>=1;j--)
printf("%d",j);
printf("\n");
}
for(i=n-1;i>=1;i--)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d",j);
for(j=i-1;j>=1;j--)
printf("%d",j);
printf("\n");
}
return 0;
}
⑵ 用c语言怎么打印数字金字塔
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;++i)
{
for(j=-n+1;j<n;++j)
{
if(abs(j)>i)
{
printf(" ");
}
else
{
printf("%d",i+1-abs(j));
}
}
printf(" ");
}
return 0;
}
⑶ 用c语言打印 1 23 456 78910
#include<stdio.h>
#include<stdlib.h>
intmain(void)//打印1 23 456 .....
{
int知态a,b,c;
a=1;c=1;//c=1在扰猛磨缓斗顶层不参与下面的循环,c就不会被重新赋值为1.
while(a<=5)//5行,循环5次;
{
b=1;//每次换行b重新赋值为1;
while(b<=a)//b为每行的位数
{
printf("%d,",c);//c第一次为1,之后为增值之后的数字.
b++;c++;//B和C每循环一次+1.
}
printf(" ");
a++;
}
system("pause");
return0;
}
⑷ C语言编程 打印数字字符图案 输入任意整数n,输出n行由数字构成的三角形字符阵列图形。
C语言程序如下:
#include<stdio.h>
intmain()
{
inta=0;//从0开始。
intn;//输入的行数,每行的字符数
scanf("%d"搭散兆,&n);
while(n)//括号内n表示n!=0.
{
inti;
for(i=0;i<n;i++)////注意n随着while循环变化的,n在不停的减少,
{
a++;
printf(a+"“);//每个字符后面都有一个空格。
}
n--;
printf(” ");//输入一行之后,换行。
}
return0;
}
(4)c语言打印数字扩展阅读:
思路:
输入格式:输入在一行中给出一个正掘卜整数n(1≤n≤10)。
输出格式:输出n行由0开始构成的三角知租形字符阵列。格式见输出样例,其中每个数字后面都有一个空格。需要输出的数字超过9时,重新从0开始循环。
输入样例:7
输出样例:
0123456
789012
34567
8901
234
56
7
⑸ c语言打印奇数,每10个数字为1怎么办
1、设定一个条件数字范围限定在1-100之间。
2、设定判断条件看能否郑激被2整除,若能被整除返回0,不能被整除返回1。
3、喊蚂袜判断返回值,若返回值为1,物液打印这个数,这个数就是奇数。
⑹ C语言打印1-100的所有数,每打10个数换行该怎么弄
具体的代码如下:
#include
<shdio.h>
int
main
(void)
{
int
i;
for(i=1;i<=100;i++)
{
printf("%d",i);
if(i%10==0)
printf("\n");
}
return
0;
}
主要就是应用for循环来打印数字,然后用选择语句,当打印了十个数字就换行。
C语言入门
1.在网上下载visual
c++
6.0这个软件,然后安装它。首先,我们点“文件”,然后选择“新建”;
2.在弹出的窗口中,我们先择“工程”中的倒数第三个Win32
Console
Application,然后我们添加工程名称、改存储位置,然后点确定、完成、确定;
3.接下来,我们又点“文件”,选择新建,然后在弹出的窗口中选择“文件搏稿”下的C++
Source
FIie,然后我们输入文件名(纯C语言,文件名后加上.c,不输入.c就是C++文件),最后我们点确定;
4.这下我们就可以编程了;
5.如图,是我编的基羡孝最简单的代码,将代码写好后,派搭我们先检查编的是否有问题。点图标为两箭头样的;
6.如果没有显示错误的话,我们就可以运行了。(点旁边的感叹号图标运行。)如果写的代码有问题,下面会提示错在哪里,然后我们再检查改正。
⑺ C语言如何用printf打印数组问题
#include<stdio.h>//增加头文件printf()用到
intmain()
{
int数旅a[5]={1,2,3,8,9};
//printf("%d",a[5]);//a[5]表示数组a的第六个元素薯孙凳,越界了凯乱
//整型数组,不能一下子简单输出出来,必须用循环
inti;
for(i=0;i<5;i++)
printf("%d",a[i]);
printf(" ");
getch();
return0;
}
(7)c语言打印数字扩展阅读
包含需要输出的数据,可以是常量(字符常量、数字常量、字符串常量),变量,以及运算式。此处的数据应当与前面的format中的格式控制符一一对应(如果不对应会产生错误)。 例如:
inta=1;
floatb=1.0;charstr[12]="HelloWorld";
printf("Thisisanexampleofprintf: ");printf("ais%d,bis%f,anda+b=%f",a,b,a+b);
printf("Iwanttosay,%s",str);⑻ C语言打印一窜数字的所有组合
1.楼主的数太多了,我的机器有点落伍,显示的时间有点漫长~~~~,我把数改成了1,2,3,3,4,7,7。显示上也简单点,原理是一样的。。。另外不是很清楚楼主的所有组合是不是包括取出一部分字符串做排列组合,我弄的是所有
数字用上的全排列,就是没有12,13这样的组合数,楼主如果是需要显示这样的数,只要在主函数中做循环,分别取出1至7个数再运行deal和排列函数就行(注,调试环境是VC++6.0)
#include "stdio.h"
#include "stdlib.h"
#define NUM 30
#define N 7 //数组元素个数
static int cnt=0;//用于记录重复数字的个数
void print(int n,int arr[]){
int i;
static int count=0;
printf("%d:",++count);
for(i=0;i<n;i++)
printf("%d",arr[i]);
printf("\t");
if(count%5==0)
printf("\n");
}
void arrange(int size,int arr[],int p){
//算法思想:采用经典回溯法,先确定第一个位置,再对余下的n-1位数字做全排列
//每组全排列后均把所有参与此次全排列的数与这次全排列的第一个数交换后再重复排列
//例如递归到排列1234后回溯一次即排列34,将4与3交换,再回溯至排列234分别将34与2交换后排列
//直至排列完成后,再分别将234与1交换后排列
//不过算法效率在数字过大后就比较低下了,楼主可以去网上找找更高效的算法
int i,temp;
if(p+1==size){//排列完成后打印
print(size,arr);
return;
}
for(i=p;i<size;i++){//交换
temp=arr[p];
arr[p]=arr[i];
arr[i]=temp;
arrange(size,arr,p+1);//递归调用排列
temp=arr[p];
arr[p]=arr[i];
arr[i]=temp;
}
}
void deal(int a[],int b[]){
//将重复数字去掉,方便全排列
int i,j;
for(i=0;i<N;i++){
if(a[i]>0){
for(j=i+1;j<N;j++){
if(a[i]==a[j]){
a[j]=-1;//重复标志
cnt++;
}
}
}
}
j=0;
for(i=0;i<=N;i++){
if(a[i]>0){
b[j++]=a[i];
}
}
}
void main(){
int a[N]={1,2,3,3,4,7,7};
int b[NUM];
deal(a,b);//处理数组
arrange(N-cnt,b,0);//排列输出
}
2.和第一问一样,我只选了1,2,3,3,4,7,7。程序上只是打印函数改了下,deal函数做了调整,本来想在第一问的排列基础上再在特定的位置上插入3和7,后来发现会重复,做了很久的无用功啊。。print中的循环太多了,看起来有点累,不过主要的就是两个大的东西,两个循环实际是一样的原理,楼主有兴趣可试着把循环换成一个函数,可读性会强点。下面的代码适用性还是很广的。
#include "stdio.h"
#include "stdlib.h"
#define NUM 30
#define N 7
static int cnt=0;//用于记录重复数字的个数
static int t[N];//用于记录重复数字
void print(int n,int arr[]){
//算法思想:对有重复的数字组合排列,将它看成是对空余位置填充数字
//先将重复的数字进行填充,即在空余位置中取定重复数的位置,再对余下的位置进x行全排列填充
//按此思想得到的个数为 =1260个
int a1[N-2],a2[N];
static int count=0;
for(int i=0;i<N-cnt/2-1;i++){
//取5个数,包括完全没重复的数再加上重复的数(例如:1,2,4,3,3)
//对这5个数按照算法思想排列
a1[i]=t[0];
for(int j=i+1;j<=N-cnt/2-1;j++){
a1[j]=t[0];
for(int k=0;k<i;k++)
a1[k]=arr[k];
for(int m=i+1;m<j;m++)
a1[m]=arr[m-1];
for(int p=j+1;p<N-cnt/2;p++)
a1[p]=arr[p-2];
for(int s=0;s<N-1;s++){//将7个数取出按照算法排列
a2[s]=t[1];
for(int r=s+1;r<=N-1;r++){
a2[r]=t[1];
for(int y=0;y<s;y++)
a2[y]=a1[y];
for(int x=s+1;x<r;x++)
a2[x]=a1[x-1];
for(int h=r+1;h<N;h++)
a2[h]=a1[h-2];
printf("%d:",++count);
for(int c=0;c<N;c++)//将该排列打印出来
printf("%d",a2[c]);
printf("\t");
if(count%5==0)
printf("\n");
}
}
}
}
}
void arrange(int size,int arr[],int p){
int i,temp;
if(p+1==size){//排列完成后打印
print(size,arr);
return;
}
for(i=p;i<size;i++){//交换
temp=arr[p];
arr[p]=arr[i];
arr[i]=temp;
arrange(size,arr,p+1);//递归调用排列
temp=arr[p];
arr[p]=arr[i];
arr[i]=temp;
}
}
void deal(int a[],int b[]){
//将数组处理成只剩不重复排列的数
int i,j,k=0;
for(i=0;i<N;i++){
if(a[i]>0){
for(j=i+1;j<N;j++){
if(a[i]==a[j]){
t[k++]=a[i];//记录重复数
a[i]=-1;
a[j]=-1;
cnt+=2;
}
}
}
}
j=0;
for(i=0;i<=N;i++){
if(a[i]>0){
b[j++]=a[i];
}
}
}
void main(){
int a[N]={1,2,3,3,4,7,7};
int b[NUM];
deal(a,b);//处理数组
arrange(N-cnt,b,0);//排列输出
}
3.第三问比较简单,在第二问打印程序上加上限制条件(即第三位不能是3,第七位不能是七)
#include "stdio.h"
#include "stdlib.h"
#define NUM 30
#define N 7
static int cnt=0;//用于记录重复数字的个数
static int t[N];//用于记录重复数字
void print(int n,int arr[]){
int a1[N-2],a2[N];
static int count=0;
for(int i=0;i<N-cnt/2-1;i++){
a1[i]=t[0];
for(int j=i+1;j<=N-cnt/2-1;j++){
a1[j]=t[0];
for(int k=0;k<i;k++)
a1[k]=arr[k];
for(int m=i+1;m<j;m++)
a1[m]=arr[m-1];
for(int p=j+1;p<N-cnt/2;p++)
a1[p]=arr[p-2];
for(int s=0;s<N-1;s++){
a2[s]=t[1];
for(int r=s+1;r<=N-1;r++){
a2[r]=t[1];
for(int y=0;y<s;y++)
a2[y]=a1[y];
for(int x=s+1;x<r;x++)
a2[x]=a1[x-1];
for(int h=r+1;h<N;h++)
a2[h]=a1[h-2];
if(a2[2]!=t[0]&&a2[6]!=t[1]){
printf("%d:",++count);
for(int c=0;c<N;c++)
printf("%d",a2[c]);
printf("\t");
if(count%5==0)
printf("\n");
}
}
}
}
}
}
void arrange(int size,int arr[],int p){
int i,temp;
if(p+1==size){//排列完成后打印
print(size,arr);
return;
}
for(i=p;i<size;i++){//交换
temp=arr[p];
arr[p]=arr[i];
arr[i]=temp;
arrange(size,arr,p+1);//递归调用排列
temp=arr[p];
arr[p]=arr[i];
arr[i]=temp;
}
}
void deal(int a[],int b[]){
//将数组处理成只剩不重复排列的数
int i,j,k=0;
for(i=0;i<N;i++){
if(a[i]>0){
for(j=i+1;j<N;j++){
if(a[i]==a[j]){
t[k++]=a[i];//记录重复数
a[i]=-1;
a[j]=-1;
cnt+=2;
}
}
}
}
j=0;
for(i=0;i<=N;i++){
if(a[i]>0){
b[j++]=a[i];
}
}
}
void main(){
int a[N]={1,2,3,3,4,7,7};
int b[NUM];
deal(a,b);//处理数组
arrange(N-cnt,b,0);//排列输出
}