

下面是我的代碼
#define N 10
#define M 10
#include<stdio.h>
int main ()
{
int a[M][N],b[M][N],s[M],n,i,j;
int c=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%d",&a[i][0]);
for(j=1;j<=a[i][0];j++)
{scanf("%d",&a[i][j]);
if (prime(a[i][j]))
{b[i][c]=a[i][j];
c++;
}
}
s[i]=c;
c=0;
}
for(i=0;i<n;i++)
px(b[i],s[i]);
for(i=0;i<n;i++)
{for(j=0;j<s[i];j++)
printf("%-2d",b[i][j]);
printf("\n");}
return 0;
}
int prime( int p )
{
int i,f;
if(p<=1)
f=0;
else
{f=1;
for(i=2;i<p;i++){
if(p%i==0)
f=0;}
}
return f;
}
void px(int a[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
uj5u.com熱心網友回復:
#include<stdio.h>
#include <math.h>
#define N 10
#define M 10
int is_prime(int n)
{
int i, tm;
if (n < 2)
return 0;
tm = sqrt(n);
for (i = 2; i <= tm; i++)
if (n % i == 0)
return 0;
return 1;
}
void sort(int *arr, int size)
{
int i, j;
int tmp;
for (i = 0; i < size; i++)
for (j = 0; j < size - i -1; j++)
if (arr[j] > arr[j+1]) {
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
void show(int *arr, int size)
{
int i;
for (i = 0; i < size; i++)
printf("%d ", arr[i]);
putchar(10);
}
int main ()
{
int cnt, len, tmp;
int array[N];
int i, j, k;
scanf("%d", &cnt);
for (i = 0; i < cnt; i++) {
scanf("%d", &len);
if (len > N)
len = N;
k = 0;
for (j = 0; j < len; j++) {
scanf("%d", &tmp);
if (is_prime(tmp))
array[k++] = tmp;
}
sort(array, k);
show(array, k);
}
#if 0
int a[M][N],b[M][N],s[M],n,i,j;
int c=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%d",&a[i][0]);
for(j=1;j<=a[i][0];j++)
{scanf("%d",&a[i][j]);
if (prime(a[i][j]))
{b[i][c]=a[i][j];
c++;
}
}
s[i]=c;
c=0;
}
for(i=0;i<n;i++)
px(b[i],s[i]);
for(i=0;i<n;i++)
{for(j=0;j<s[i];j++)
printf("%-2d",b[i][j]);
printf("\n");}
#endif
return 0;
}
#if 0
int prime( int p )
{
int i,f;
if(p<=1)
f=0;
else
{f=1;
for(i=2;i<p;i++){
if(p%i==0)
f=0;}
}
return f;
}
void px(int a[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
#endif
供參考~
題目要求是輸入的整數是<= 10,沒說是輸入的n(樓主定義的)也是10,如果n是大于10的,會出現陣列越界,出現段錯誤;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/213049.html
標籤:C語言
