1,这个代码里新学到#include<string.h>和strlen(),只是知道这两个是配对用于一串字符,但其他作用和注意问题还不了解,等待老师解答。
#include<stdio.h> #include<string.h> int main() { char yourname[100]; int i,all[26]={ 0 }; printf("请输入你的名字的拼音:"); scanf("%s",yourname); for(i=0;i<strlen(yourname);i++) { all[yourname[i]-'a']++; } for(i=0;i<26;i++) { printf("%c:%d个 ",'A'+i,all[i]); } return 0; }
2,这里有一个小问题我一直没明白,为什么不能一次输入一些数字并用空格隔开,使用循环只能一次输入一个数字。
#include<stdio.h> int main() { int a[10],b[10]; int n,i,j=1; printf("请输入n的个数: "); scanf("%d",&n); printf("请逆序输入这些数: "); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=n;i>0;i--) b[j++]=a[i]; printf("顺序输出:"); for(i=1;i<=n;i++) printf("%d ",b[i]); }
3,
#include<stdio.h> int main() { int n,m,x,y,a[100],b[100]; printf("第一组共有几个数:"); scanf("%d",&n); printf("分别是:"); int i,j; for(i=1;i<=n;i++) { scanf("%d",&x); a[i]=x; } printf("第二组共有几个数:"); scanf("%d",&m); printf("分别是:"); for(i=1;i<=m;i++) { scanf("%d",&y); b[i]=y; } printf("它们的共有:"); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(a[i]==b[j]) printf("%d ",a[i]); } } return 0; }
4,有一个问题一直不明白,为什么输入很多很多数字后,反序输出的结果却不正确了,求解
#include<stdio.h> int turn(int a) { if(a==0) return 0; else { printf("%d",a%10); return turn(a/10); } } int main() { int b; printf("请输入一些整数:"); scanf("%ld",&b); printf("反序结果为:"); turn(b); return 0; }