當前位置:首頁 » 編程語言 » c語言排列9個數字
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言排列9個數字

發布時間: 2022-11-22 04:05:59

A. c語言:一個大小是10的數組,已經存放有9個數字,且按從小到大排列.現插入一個數,用函數寫

void insertSortedArray( int arr[], int insertNum )
{
int i = 0;
int midArr[10] = {0};

memcpy( midArr, arr, sizeof(midArr) );

for ( ; i < 10; i ++ )
{
if ( insertNum < arr[i] )
{
arr[i] = insertNum;
i ++;

break;
}
}

for ( ; i < 10; i ++ )
{
arr[i] = midArr[i-1];
}
}

B. 用C語言將9個不同大小的數字按從大到小排列

#include<iostream>
using namespace std;

void input (int[] ,int);
void getHighest(int[],int,int&);

const int NUM=9;
int main()
{
int Num[NUM];
int max;
int m;

input(Num,NUM);
for(m=0;m<NUM;m++)
{
getHighest(Num,NUM,max);
cout<<max<<endl;

}

return 0;
}

void input( int Num[], int n)
{
int m;

cout<<"Please enter "<<n<<" numbers."<<endl;
for(m=0;m<n;m++)
{
cout<<"Enter the number("<<m+1<<"): ";
cin>>Num[m];
}
}

void getHighest (int Num[], int n, int&max)
{
int m;
max=Num[0];
for(m=0;m<n;m++)
{
if(Num[m]>max)
{
int temp;
temp=max;
max=Num[m];
Num[m]=temp;
}

}
}

//我用的是int型,要是數據類型不一樣的話,要用模塊。

C. C語言:從鍵盤輸入9個數(按九宮格排序3*3)保存至數組中,現按原來位置輸出第一行和第一列。求大神!


位置不對

D. 1到9組成的9位數(無重復的)用c語言怎麼寫

你是求個數還是輸出?個數是9!=362880。下面是輸出的C代碼。
//#include "stdafx.h"//vc++6.0加上這一行.
#include "stdio.h"
#include "string.h"
#include "time.h"
#include "stdlib.h"
int main(void){
int Dec,i,j,k,l,f;
char a[10];
for(l=0,i=123456789;i<987654322;i+=9){
for(itoa(i,a,10),f=j=0;j<8;j++)
for(k=j+1;k<9;k++)
if(a[j]==a[k] || a[k]=='0'){
f=1;
j=8;
break;
}
if(f==0) printf(++l%10 ? "%s " : "%s\n",a);
}
return 0;
}

E. C語言編程實現用9個數字排成沒有重復數字的完全平方數

#include<stdio.h>

intok(intn)
{
inti=n%10,j=n/10%10,k=n/100%10;
returni!=j&&j!=k&&k!=i;
}

intok3(inti,intj,intk)
{
inta[9],m,n;
a[0]=i%10;
a[1]=i/10%10;
a[2]=i/100%10;
a[3]=j%10;
a[4]=j/10%10;
a[5]=j/100%10;
a[6]=k%10;
a[7]=k/10%10;
a[8]=k/100%10;
for(m=0;m<8;m++)
for(n=m+1;n<9;n++)
if(a[m]==a[n])return0;
return1;
}

intmain()
{
inti,j,k,a[20],n=0;
for(i=13;i<32;i++)
if(ok(i*i))a[n++]=i*i;
for(i=0;i<n-2;i++)
for(j=i+1;j<n-1;j++)
for(k=j+1;k<n;k++)
if(ok3(a[i],a[j],a[k]))
printf("%d%d%d ",a[i],a[j],a[k]);
return0;
}

F. c語言0~9十個數排列組合,每次運行可以得到不同的排列組合

這個是排列,如果是組合最後一個循環判斷時候有相等的: #include<stdio.h> int main() { for(int i0=0;i0<9;i0++) for(int i1=0;i1<9;i1++) for(int i2=0;i2<9;i2++) for(int i3=0;i3<9;i3++) for(int i4=0;i4<9;i4++) for(int i5=0;i5<9;i5++) for(int i6=0;i6<9;i6++) for(int i7=0;i7<9;i7++) for(int i8=0;i8<9;i8++) for(int i9=0;i9<9;i9++) printf("\n%d%d%d%d%d%d%d%d%d%d",i0,i1,i2,i3,i4,i5,i6,i7,i8,i9); }

G. c語言 在任意給定的9個正整數中,找出按升序排列時處於中間的數

存儲這九個數的是一維數組a[10];
int i,j=0;
for(i=0;i<10;i++)
{ if(a[i]<a[i+1]) j++;
if(j==5) printf("中間數%d「,a[i]);
}

H. 求C語言程序編程,將1-9 9個數字填入下表,使每橫行、每豎列的數字之和

#include<stdio.h>
intmain(intargc,char*argv[]){
charRoom9[3][3]={0},i,j,k;
for(i=0,j=k=1;k<10;k++,i--,j++){
if(i==-1&&j<3)i+=3;
elseif(j==3&&i>-1)j-=3;
elseif(i==-1&&j==3||Room9[i][j]!=0){
i+=2;
j-=1;
}
Room9[i][j]=k;
}
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%3d",Room9[j][i]);
printf(" ");
}
return0;
}

I. 九九宮格有多少種求用c語言編寫代碼顯示!註:要求顯示總的個數!

首先貼效果:
initial array is :
1 2 3
4 5 6
7 8 9

2 7 6
9 5 1
4 3 8

2 9 4
7 5 3
6 1 8

4 3 8
9 5 1
2 7 6

4 9 2
3 5 7
8 1 6

6 1 8
7 5 3
2 9 4

6 7 2
1 5 9
8 3 4

8 3 4
1 5 9
6 7 2

8 1 6
3 5 7
4 9 2

total solving :8

不能構成的情況:
initial array is :
0 9 4
7 5 3
6 1 8

The number you input can not be jiuGongGe!

再貼源代碼:
#include <stdio.h>
#include "conio.h"

long n = 0;

void swap(int *a, int *b)
{
int m;
m = *a;
*a = *b;
*b = m;
}

int isJiuGongGe(int array[])
{
int sum=(array[0]+array[1]+array[2]);
if(sum==(array[3]+array[4]+array[5])&&sum==(array[6]+array[7]+array[8])&&
sum==(array[0]+array[4]+array[8])&&sum==(array[2]+array[4]+array[6])&&
sum==(array[0]+array[3]+array[6])&&
sum==(array[1]+array[4]+array[7])&&
sum==(array[2]+array[5]+array[8]))
return 1;
else
return 0;
}

void printfArray(int array[])
{
int i=0;
for(i=0;i<9;i++)
{
printf("%2d",array[i]);
if((i+1)%3==0)
{
printf("\n");
}
}
printf("\n");
}

void findAllJiugongge(int list[], int k, int m)
{
int i;
if(k > m)
{
if(isJiuGongGe(list))
{
printfArray(list);
n++;
}

}
else
{
for(i = k; i <= m; i++)
{
swap(&list[k], &list[i]);
findAllJiugongge(list, k + 1, m);
swap(&list[k], &list[i]);
}
}
}

int main()
{
int list[] = {0, 9, 4, 7, 5,3,6,1,8};
int i=0;
/*for(i=0;i<9;i++)
{
scanf("%d",&array[i]);
}*/
printf("initial array is :\n");
printfArray(list);
findAllJiugongge(list, 0, 8);
if(n>0)
{
printf("total solving :%ld\n", n);
}
else
{
printf(" The number you input can not be jiuGongGe!\n");
}

getch();
}

再說說思路:
1、 9個數放到一個9個元素的數組中。
2、對9個數進行全排列,沒排列一種可能都判斷下是否滿足九宮格情況。滿足就輸出。

3、提高篇:這個方式是最直觀的一種方法,最好懂的一種方法。
當然也可以用深度搜索,寬度搜索或者是A*演算法搜索出所有的解。但是沒有多大的意義,在游戲開發中到可以使用。尤其是8數碼問題、拼圖、華容道等難題中。

4、方便測試,我直接把數組賦值了。你要自己輸入的話,注釋那段代碼用起來就可以了。
樓主好運!

J. C語言:1~9九個數字不重復組成3個三位數,使其2個之和等於第三個;以A+B=C形式輸出所有情況,咋編

代碼文本:

#include "stdio.h"

int main(int argc,char *argv[]){

int a,b,c,u,v,w,x,y,z,r,s,t,k;

for(k=0,a=1;a<10;a++)

for(b=1;b<10;b++)

if(b!=a)

for(c=1;c<10;c++)

if(c-b && c-a)

for(u=1;u<10;u++)

if(u-c && u-b && u-a)

for(v=1;v<10;v++)

if(v-u && v-c && v-b && v-a)

for(w=1;w<10;w++)

if(w-v && w-u && w-c && w-b && w-a)

for(x=1;x<10;x++)

if(x-w && x-v && x-u && x-c && x-b && x-a)

for(y=1;y<10;y++)

if(y-x && y-w && y-v && y-u && y-c && y-b && y-a)

for(z=1;z<10;z++)

if(z-y && z-x && z-w && z-v && z-u && z-c && z-b && z-a

&& (r=a*100+b*10+c)+(s=u*100+v*10+w)==(t=x*100+y*10+z))

printf(++k%8 ? "%d+%d=%d " : "%d+%d=%d ",r,s,t);

if(k%8)

putchar(' ');

return 0;

}