有一个疑问和一个并不知道怎么改正的题目
程序代码:
#include<stdio.h> #include<string.h> int main() { char name[20];/*可以不要[20]吗,为什么?假设我不知道应该分配多少字符,而且还要结尾对齐的时候怎么办*/ int twoname; scanf("%s",name); printf("\"%s\"\n",name); printf("\"%-20s\"\n",name); twoname=strlen(name)+3; printf("\"%*s\"\n",twoname,name); return 0; }
程序代码:
/* 首先要求用户输入名字,然后要求用户输入姓名,在下行打印每个名字中的字母的个数。把字母个数与相应名字的结尾对齐,如下所示 Melissa Honeybee 7 8 然后打印相同的信息,但是每个字母个数与相应单词的开始对齐。 Melissa Honeybee 7 8 */ #include<stdio.h> #include<string.h> int main() { int onenumber,twonumber; char onename[20],twoname[20]; printf("请输入姓\n"); scanf("%s",onename); printf("请输入名\n"); scanf("%s",twoname); onenumber = sizeof(onename); twonumber = sizeof(twoname); printf("%s%s\n",onename,twoname); printf("%*d %*d\n",onenumber,onenumber,twonumber,twonumber); printf("%s%s\n",onename,twoname); printf("%-*d %-*d\n",onenumber,onenumber,twonumber,twonumber); return 0;