请问怎么写,这几个,请求各位帮帮我

img


这几个都不会啊,不知道怎么办,真的不会,没用的大学牲一枚,请懂的人帮我

供参考:

//100,21,3950,7,8,3289,943,495,34134,343,209,47,2,7293,29,2723,843,392,24

//(1)

#include <stdio.h>
int main()
{
    int i,k,a[30];
    char c = '\0';
    for (i = 0;c != '\n' ; i++)
        scanf("%d%c", &a[i], &c);
    for (k = i, i = 0; i < k; i++)
        printf((i + 1) % 5 ? "%-7d" : "%-7d\n",a[i]);
    return 0;
}


//(2)

#include <stdio.h>
int main()
{
    int i,k,a[30];
    char c = '\0';
    for (i = 0;c != '\n' ; i++)
        scanf("%d%c", &a[i], &c);
    for (k = i, i = 0; i < k; i++)
        printf((i + 1) % 5 ? "%7d" : "%7d\n",a[i]);
    return 0;
}

//Machine learning is the term that refers to learning patterns in the data In other words
//(3)
#include <stdio.h>
int main()
{
    int  i = 0;
    char str[16];
    while (1)
    {
        scanf("%s", str);
        i++;
        printf(i % 5 ? "%-12s" : "%-12s\n", str);
        if ((getchar()) == '\n')  break;
    }
    return 0;
}

//(4)
#include <stdio.h>
int main()
{
    int  i = 0;
    char str[16];
    while (1)
    {
        scanf("%s", str);
        i++;
        printf(i % 5 ? "%12s" : "%12s\n", str);
        if ((getchar()) == '\n')  break;
    }
    return 0;
}

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7722142
  • 这篇博客也不错, 你可以看下读入字符时往往会多一个回车,如何解决
  • 除此之外, 这篇博客: 【单链表】大数据,请把它推给还不会单链表的人中的 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • void SListPrint(SLTNode* plist)
    {
    	SLTNode* cur = plist;
    	while (cur != NULL)
    	{
    		printf("%d->", cur->data);
    		cur = cur->next;
    	}
    	printf("NULL\n");
    
    }
    

    备注;在对每一个接口进行测试的时候,通过打印结果来观察测试接口的正确与否


    每次插入前都要构造一个新结点,这一步模块化代码是不是和顺序表的插入前检查是否需要扩容很像!哈哈哈

    SLTNode* BuySLTNode(SLTDataType x)
    {
    	SLTNode* newnode = (SLTNode*)malloc(sizeof(SLTNode));
    	newnode->data = x;
    	newnode->next = NULL;
    
    	return newnode;
    }

    注意:返回类型是SLTNode*类型


这题看似简单,其实不然,……
非标准答案,仅供参考!
支持随意单词长度

img

img

img

img

#include<stdio.h>
#include<string.h>


void fun1(char *st, const char ch)
{
    const char c[] = ", ";
    char *p;
    int n = 0 /* 单词个数 */ , len = strlen(st);
    // int N = 1; // 总行数
    int Hlen[5] = { 0 };        // 记录各列最长记录
    int tmp;
    int i = 0;

    if (st[len - 1] == '\n')
    {
        st[len - 1] = '\0';
        len--;
    }

    char s1[len + 1], s2[len + 1];
    strcpy(s1, st);
    strcpy(s2, st);


    p = strtok(s1, c);
    while (p)
    {
        tmp = strlen(p);
        if (tmp > Hlen[i])
            Hlen[i] = tmp;
        n++;
        p = strtok(NULL, c);
        i++;
        if (i == 5)
            i = 0;
    }

    i = 0;
    int fl = -1;

    if (ch != 'l' && ch != 'L')
        fl = 1;
    p = strtok(s2, c);
    while (p)
    {
        if (i == 0)
        {
            if (fl == -1)
                printf("%*s", Hlen[i] * fl - 1, p);
            else
                printf("%*s", Hlen[i], p);
        }
        else
            printf("%*s", fl * (Hlen[i] + 1), p);
        p = strtok(NULL, c);
        i++;
        if (i == 5)
        {
            i = 0;
            putchar('\n');
        }
    }
    putchar('\n');

}

int main(void)
{
    char c;

    char s[10000] = { '\0' };

    fgets(s, 9999, stdin);
    printf("\n请选择左对齐输入字母L或l,右对齐输入其它任意一个字符:");
    scanf("%c", &c);

    fun1(s, c);

    return 0;
}