Python123第八章答案(自写,仅供参考) By:肇院伟烨
#include <stdio.h> #include<string.h> #define MAX_LEN 100 #define LEN 5 char str[LEN][MAX_LEN]; char* order[LEN] = {0}; int size=0 , end_number; void insert(int i) { if (i == 0) { order[i] = str[i]; size++; } else { end_number = size - 1; while (end_number >= 0 && strcmp(order[end_number], str[i]) > 0) { order[end_number + 1] = order[end_number]; end_number--; } order[end_number + 1] = str[i]; size++; } } int main() { int i, b; for (i = 0; i <5; i++) { scanf("%s", str[i]); insert(i); } printf("After sorted:\n"); for (i = 0; i <5; i++) { printf(order[i]); if (i != 4) { putchar('\n'); } } return 0; }
#include <stdio.h> #include<stdlib.h> int main() { float* p; int i, n; scanf("%d", &n); p = (float*)malloc(n * sizeof(float)); if (p == NULL) exit(1); float sum = 0, average; int max = 0, min = 0; for (i = 0; i < n; i++) { scanf("%f", &p[i]); sum += p[i]; if (p[i] > p[max]) max = i; if (p[i] < p[min]) min = i; } average = sum / n; printf("average = %.2f\nmax = %.2f\nmin = %.2f\n", average, p[max], p[min]); free(p); p = NULL; return 0; }
#include <stdio.h> void sum_diff(float op1, float op2, float* psum, float* pdiff); int main() { float a, b, sum, diff; scanf("%f %f", &a, &b); sum_diff(a, b, &sum, &diff); printf("The sum is %.2f\nThe diff is %.2f\n", sum, diff); return 0; } void sum_diff(float op1, float op2, float* psum, float* pdiff) { *psum = op1 + op2; *pdiff = op1 - op2; }
#include <stdio.h> #include <string.h> int main() { int i,n; char str[100],a,b,c; gets(str); a=str[0]; b=str[1]; c=str[2]; for(i=0;str[i+3]!='\0';i++) { str[i]=str[i+3]; } str[i]=a; str[i+1]=b; str[i+2]=c; str[i+3]='\0'; puts(str); return 0; }
#include <stdio.h> void splitfloat( double x, int *intpart, double *fracpart ); int main() { double x, fracpart; int intpart; scanf("%lf", &x); splitfloat(x, &intpart, &fracpart); printf("The integer part is %d\n", intpart); printf("The fractional part is %g\n", fracpart); return 0; } void splitfloat( double x, int *intpart, double *fracpart ) { *intpart=x; *fracpart=x-*intpart; }
#include<stdio.h> #define MAX 100 int arr[MAX]; int search(int list[], int n, int x); int main() { int i,n,number, x; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } scanf("%d", &x); if (search(arr, n, x) == -1) printf("Not found"); else printf("index = %d", search(arr, n, x)); return 0; } int search(int list[], int n, int x) { int i; for (i = 0; i < n; i++) if (list[i] == x) { return i; break; } if (i == n) return -1; }
#include <stdio.h> #define MAXN 10 int ArrayShift(int a[], int n, int m); int main() { int a[MAXN], n, m; int i; scanf("%d %d", &n, &m); for (i = 0; i < n; i++) scanf("%d", &a[i]); ArrayShift(a, n, m); for (i = 0; i < n; i++) { if (i != 0) printf(" "); printf("%d", a[i]); } printf("\n"); return 0; } int ArrayShift(int a[], int n, int m) { int swap,i,j; for (i = 1; i <= m; i++) { swap = a[n - 1]; for (j = n - 1; j > 0; j--) a[j] = a[j-1]; a[0] = swap; } return 0; }
#include <stdio.h> #define MAXN 20 void CountOff(int n, int m, int out[]); int main() { int out[MAXN], n, m; int i; scanf("%d %d", &n, &m); CountOff(n, m, out); for (i = 0; i < n; i++) printf("%d ", out[i]); printf("\n"); return 0; } void CountOff(int n, int m, int out[]) { int i = 0, j = 1, count = 0; for (i = 0; i < n; i++) { out[i] = 0; } i = 0; while (j <= n) { for (i = 1; i <= n; i++) { if (out[i - 1] == 0) { count++; } if (out[i - 1] == 0 && count == m) { out[i - 1] = j; j++; count = 0; } } } }
#include <stdio.h> #define MAXN 100 void strmcpy( char *t, int m, char *s ); void ReadString( char s[] ); int main() { char t[MAXN], s[MAXN]; int m; scanf("%d\n", &m); ReadString(t); strmcpy( t, m, s ); printf("%s\n", s); return 0; } void ReadString( char s[] ) { gets(s); } void strmcpy( char *t, int m, char *s ) { int i,len=0,j=0; for(i=0;t[i]!='\0';i++) { len++; } if(m>len) { s[0]='\0'; } else { for(i=m-1;i<len;i++) { s[j]=t[i]; j++; } s[j]='\0'; } }
#include <stdio.h> #include <string.h> #define MAXN 20 void delchar( char *str, char c ); void ReadString( char s[] ); int main() { char str[MAXN], c; scanf("%c\n", &c); ReadString(str); delchar(str, c); printf("%s\n", str); return 0; } void ReadString( char s[] ) {gets(s);} void delchar( char *str, char c ) { int i,j=0; char str1[MAXN]; for(i=0;str[i]!='\0';i++) { if(str[i]!=c) { str1[j]=str[i]; j++; } } str1[j]='\0'; strcpy(str,str1); }
#include <stdio.h> #include <string.h> #define MAXN 20 typedef enum { false, true} bool; bool palindrome( char *s ); int main() { char s[MAXN]; scanf("%s", s); if ( palindrome(s)==true ) printf("Yes\n"); else printf("No\n"); printf("%s\n", s); return 0; } bool palindrome( char *s ) { int end,star=0; end=strlen(s)-1; while(1) { if(s[star]!=s[end]) return false; else star++; end--; if(star>end) return true; } }
#include <stdio.h> #include<ctype.h> #define MAXS 15 void StringCount(char* s); void ReadString(char* s); int main() { char s[MAXS]; ReadString(s); StringCount(s); return 0; } void ReadString(char* s) { int i = 0; while (scanf("%c", s + i) && s[i] != '~') { i++; } s[i] = '~'; s[i + 1] = '\0'; } void StringCount(char* s) { int i = 0,upper=0,lower=0,blank=0,digit=0,other=0; while (s[i] != '\0') { if (isupper(s[i])) upper++; else if (islower(s[i])) lower++; else if (s[i]==' ') blank++; else if (isdigit(s[i])) digit++; else other++; i++; } printf("%d %d %d %d %d", upper,lower, blank, digit, other); }
#include <stdio.h> #define MAXN 10 int ArrayShift(int a[], int n, int m); int main() { int a[MAXN], n, m; int i; scanf("%d %d", &n, &m); for (i = 0; i < n; i++) scanf("%d", &a[i]); ArrayShift(a, n, m); for (i = 0; i < n; i++) { if (i != 0) printf(" "); printf("%d", a[i]); } printf("\n"); return 0; } int ArrayShift(int a[], int n, int m) { int swap,i,j; for (i = 1; i <= m; i++) { swap = a[n - 1]; for (j = n - 1; j > 0; j--) a[j] = a[j-1]; a[0] = swap; } return 0; }
#include <stdio.h> #include <string.h> #define MAXN 20 int palindrome( char *s ); int main() { char s[MAXN]; scanf("%s", s); if ( palindrome(s)==1 ) printf("Yes\n"); else printf("No\n"); printf("%s\n", s); return 0; } int palindrome( char *s ) { int end,star=0; end=strlen(s)-1; while(1) { if(s[star]!=s[end]) return 0; star++; end--; if(star>end) return 1; } }