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);//排列輸出
}