高级语言程序设计课程第六次个人作业
2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C
高级语言程序设计课程第六次个人作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13303
学号:102400226
姓名:石华波
//1104.1
#include<stdio.h>
void fun(int m,int *k,int xx[]);
int main(){
int m,k=0,xx[1001];
scanf("%d",&m);
fun(m,&k,xx);
printf("%d\n",k);
for(int i=0;i<k;i++){
printf("%d ",xx[i]);
}
return 0;
}
void fun(int m,int *k,int xx[]){
xx[(*k)++]=1;
for(int i=3;i<m;i++){
for(int j=2;j<=i*i;j++){
if(i%j==0){
xx[(*k)++]=i;
break;
}
}
}
}
//1104.2
#include<stdio.h>
#include<string.h>
void StringCopy_m_from_n(char str1[],char str2[],int n,int m);
int main(){
char str1[1001],str2[1001];
int m;
scanf("%s %d",str1,&m);
StringCopy_m_from_n(str1,str2,strlen(str1),m);
printf("%s",str2);
return 0;
}
void StringCopy_m_from_n(char str1[],char str2[],int n,int m){
int c=0;
for(int i=m-1;i<=n;i++) str2[c++]=str1[i];
}
//1104.3
#include<stdio.h>
int main(){
int num[1001],n=0,isSwapped,temp;
while(scanf("%d",&num[n++])!=EOF);
for(int i=0;i<n-1;i++){
isSwapped=0;
for(int j=0;j<n-i-1;j++){
if(num[j]>num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
isSwapped=1;
}
}
if(!isSwapped) break;
}
for(int i=0;i<n-1;i++) printf("%d ",num[i]);
return 0;
}
//1104.4
#include<stdio.h>
void ReverseSort(int *start,int *end);
int main(){
int arr[1001],n=0;
while(scanf("%d",&arr[n++])!=EOF);
int *start=arr,*end=arr+n-2;
ReverseSort(start,end);
for(int i=0;i<n-1;i++) printf("%d ",arr[i]);
return 0;
}
void ReverseSort(int *start,int *end){
int temp;
while(start<end){
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
}
}
//1104.5
#include<stdio.h>
void printarr(char *arr);
int main(){
char arr[1001];
scanf("%s",arr);
printarr(arr);
return 0;
}
void printarr(char *arr){
while(*arr!='\0') printf("%c",*arr++);
}
//1104.6
#include<stdio.h>
#include<limits.h>
void LookValue(int *arr,int n,int m);
int main(){
int n,m,is=0;
scanf("%d %d",&n,&m);
int arr[n][m];
while(1){
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(scanf("%d",&arr[i][j])==EOF) {
is=1;
break;
}
}
if(is) break;
}
if(is) break;
LookValue(&arr[0][0],n,m);
}
return 0;
}
void LookValue(int *arr,int n,int m){
int max=INT_MIN,min=INT_MAX,maxr=0,maxc=0,minr=0,minc=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(arr[i*m+j]>max){
max=arr[i*m+j];
maxr=i;
maxc=j;
}
if(arr[i*m+j]<min){
min=arr[i*m+j];
minr=i;
minc=j;
}
}
}
printf("Max=arr[%d][%d]=%d,Min=arr[%d][%d]=%d\n",maxr,maxc,max,minr,minc,min);
}
//1104.7
#include<stdio.h>
int main(){
int T,n,Tab[11][11]={0},judge;
scanf("%d",&T);
while(T--){
judge=1;
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%d",&Tab[i][j]);
}
}
for(int h=2;h<=n;h++) {
if(!judge) break;
for(int l=1;l<h;l++) {
if(Tab[h][l]!=0) {
printf("No\n");
judge=0;
break;
}
}
}
if(judge) printf("Yes\n");
}
return 0;
}
//1104.8
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int isInArr(int l,const int *arr);
int compare(const void *a, const void *b);
int main(){
srand(time(NULL));
int arr[5][5],k=0;
for(int i=0;i<5;i++) {
for(int j=0;j<5;j++) {
arr[i][j]=rand()%100+1;
}
}
qsort(arr,25,sizeof(int),compare);
for(int i=0;i<5;i++) {
for(int j=0;j<5;j++) {
printf("%d ",arr[i][j]);
}
printf("\n");
}
while(scanf("%d",&k)!=EOF) {
if(isInArr(k,&arr[0][0])) printf("YES\n");
else printf("NO\n");
}
return 0;
}
int isInArr(int l,const int *arr) {
int start=0,end=24;
if(l<arr[start]||l>arr[end]) return 0;
while(start<=end) {
int mid=(start+end)/2;
if(arr[mid]==l) return 1;
if(arr[mid]>l) end=mid-1;
else start=mid+1;
}
return 0;
}
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
//1104.9
#include<stdio.h>
int isPrime(int a) {
if(a==1) return 0;
for(int i=2;i*i<=a;i++) {
if(a%i==0) {
return 0;
}
}
return 1;
}
int split(int n,int *a,int *b) {
if(n<4) return 0;
for(int i=2;i<=n-2;i++){
if(isPrime(i)&&isPrime(n-i)){
*a=i;
*b=n-i;
return 1;
}
}
return 0;
}
int main(){
int N,a,b;
scanf("%d",&N);
if(split(N,&a,&b)) printf("%d=%d+%d",N,a,b);
else printf("Can not be split.");
return 0;
}
//1104.10
#include <stdio.h>
#include <string.h>
void shift(char *s, int n) {
int len = strlen(s);
n=n%len;
char temp[n];
memcpy(temp, s, n);
memmove(s, s + n, len - n);
memcpy(s + len - n, temp, n);
}
int main() {
char str[101];
int n;
scanf("%s %d",str,&n);
shift(str,n);
printf("%s",str);
return 0;
}
//1104.11
#include <stdio.h>
int isMagic(int size,int mar[size][size]);
int sumRow(int size,int mar[size][size]);
int sumColumn(int size,int mar[size][size]);
int sumDiagonal(int size,int mar[size][size]);
int main() {
int size;
scanf("%d",&size);
int mar[size][size];
for(int i=0;i<size;i++) {
for(int j=0;j<size;j++) {
scanf("%d",&mar[i][j]);
}
}
if(isMagic(size,mar)) printf("YES\n");
else printf("NO\n");
return 0;
}
int isMagic(int size,int mar[size][size]) {
int sumrow,sumcolumn,sumdiagonal;
sumrow=sumRow(size,mar);
sumcolumn=sumColumn(size,mar);
sumdiagonal=sumDiagonal(size,mar);
if(sumrow==0||sumcolumn==0||sumdiagonal==0) return 0;
if(sumrow==sumcolumn&&sumrow==sumdiagonal) return 1;
return 0;
}
int sumRow(int size,int mar[size][size]) {
int temp,sum;
for(int i=0;i<size;i++) {
sum=0;
for(int j=0;j<size;j++) {
sum+=mar[i][j];
temp=sum;
}
if(sum!=temp) return 0;
}
return sum;
}
int sumColumn(int size,int mar[size][size]) {
int temp,sum;
for(int i=0;i<size;i++) {
sum=0;
for(int j=0;j<size;j++) {
sum+=mar[j][i];
temp=sum;
}
if(sum!=temp) return 0;
}
return sum;
}
int sumDiagonal(int size,int mar[size][size]) {
int sum1=0,sum2=0;
for(int i=0,j=0;i<size;i++,j++) sum1+=mar[i][j];
for(int i=size-1,j=0;i>=0;i--,j++) sum2+=mar[i][j];
if(sum1!=sum2) return 0;
return sum2;
}
//1104.12
#include<stdio.h>
int StrCmp(char *s1, char *s2){
while(*s1&&*s1==*s2) {
s1++;
s2++;
}
if(*s1<*s2) return -1;
if(*s2<*s1) return 1;
return 0;
}
int main(){
char str1[1001],str2[1001];
scanf("%s %s",str1,str2);
printf("%d",StrCmp(str1,str2));
return 0;
}