c语言初学者,没有思路,帮忙看看?比较急,下午要讲,求指点,感激不尽!
供参考:
#include <stdio.h>
void print_pattern1(int n)
{
int i, j;
char ch = 'a';
printf("Pattern I\n");
for (i = 0; i < n; i++)
{
for (j = 0, ch = 'a'; j <= i; j++)
printf("%-2c", ch++);
printf("\n");
}
}
void print_pattern2(int n)
{
int i, j;
char ch = 'a';
printf("Pattern II\n");
for (i = 0; i < n; i++)
{
for (j = 0, ch = 'a'; j < n - i; j++)
printf("%-2c", ch++);
printf("\n");
}
}
void print_pattern3(int n)
{
int i, j;
char ch;
printf("Pattern III\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n - i - 1; j++)
printf(" ");
for (j = 0, ch = 'a' + i; j <= i; j++)
printf("%-2c", ch--);
printf("\n");
}
}
void print_pattern4(int n)
{
int i, j;
char ch = 'a';
printf("Pattern IV\n");
for (i = 0; i < n; i++)
{
for (j = 0, ch = 'a' + n - 1 - i; j < n - i; j++)
printf("%-2c", ch--);
printf("\n");
}
}
int main()
{
int ch = 1, n;
while (ch) {
printf("Which pattern would you like to print?\n");
printf("--------------------------------------\n");
scanf("%d", &ch);
switch (ch) {
case 1:printf("input line n:"); scanf("%d", &n); print_pattern1(n); break;
case 2:printf("input line n:"); scanf("%d", &n); print_pattern2(n); break;
case 3:printf("input line n:"); scanf("%d", &n); print_pattern3(n); break;
case 4:printf("input line n:"); scanf("%d", &n); print_pattern4(n); break;
case 5:ch = 0; break;
default:break;
}
}
return 0;
}
p的单双数控制位置,n负责行数。先判断单双再循环打印。急的话悬赏吧,很多人帮你解决的
上面第一个跟下面的没有关系,上面的你可以按照画图的方式一样输出,
下面的用一个循环先判断怎么样的输出模式,再循环输出多少行
供参考,谢谢!
#include <stdio.h>
#include <stdlib.h>
void menu()
{
printf("_____________________________________________\n\n");
printf("请选择下面输出样式的对应数字编号\n");
printf("\n_____________________________________________\n\n");
printf("1. a 2. a b c 3. a 4. c b a");
puts("");
printf(" a b a b b a b a");
puts("");
printf(" a b c a c b a a");
puts("\n");
printf("5.Quit\n\n");
}
void func1(int n)
{
int c = 'a', cc = 'a';
for (int i = 0; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
printf("%c ", c++);
}
c = cc;
puts("");
}
}
void func2(int n)
{
int c = 'a', cc = 'a';
for (int i = 0; i < n; i++)
{
for (int j = n - 1 - i; j >= 0; j--)
{
printf("%c ", c++);
}
c = cc;
puts("");
}
}
void func3(int n)
{
int w = 2 * n - 1;
int c = 'a', cc = 'a';
for (int i = 0; i < n; i++)
{
c = cc + i;
for (int j = 0; j <= i; j++)
{
if (j == 0)
printf("%*c ", w - i * 2, c--);
else
printf("%c ", c--);
}
puts("");
}
}
void func4(int n)
{
int c = 'a' + n - 1, cc = c;
for (int i = 0; i < n; i++)
{
c = cc - i;
for (int j = n - i - 1; j >= 0; j--)
{
printf("%c ", c--);
}
puts("");
}
}
int main(int argc, char *argv[])
{
menu();
int n = 0, m = 0;
printf("Pattern:");
scanf("%d", &m);
printf("n:");
while (n < 1 || n > 26)
scanf("%d", &n);
switch (m)
{
case 1:
func1(n);
break;
case 2:
func2(n);
break;
case 3:
func3(n);
break;
case 4:
func4(n);
break;
case 5:
return 0;
default:
exit(-1);
}
return 0;
}
#include <stdio.h>
void printA(int n) {
for (int i = 0; i < n; i++) {
char c = 'a';
for (int j = 0; j <= i; j++) {
printf("%c ", c);
c++;
}
printf("\n");
}
}
void printB(int n) {
for (int i = n - 1; i >= 0; i--) {
char c = 'a';
for (int j = 0; j <= i; j++) {
printf("%c ", c);
c++;
}
printf("\n");
}
}
void printC(int n) {
for (int i = 0; i < n; i++) {
char c = 'a'+i;
for (int x = 1; x < n-i; x++) {
printf(" ");
}
for (int j = 0; j <= i; j++) {
printf("%c ", c);
c--;
}
printf("\n");
}
}
void printD(int n) {
for (int i = n - 1; i >= 0; i--) {
char c = 'a'+i;
for (int j = 0; j <= i; j++) {
printf("%c ", c);
c--;
}
printf("\n");
}
}
int main() {
int pattern = 1, n;
int d =1;
while (d==1) {
printf("Which pattern would you like to print?\n");
printf("-------------------------------------------------\n");
printf("1.a 2.a b c 3. a 4.c b a \n");
printf(" a b a b b a b a \n");
printf(" a b c a c b a a \n");
printf("\n5.Quit\n\n");
printf("-------------------------------------------------\n");
printf("Pattern==>:");
scanf("%d", &pattern);
printf("n==>:");
scanf("%d", &n);
printf("\n");
switch (pattern) {
case 1:
printf("PatternI\n");
printA(n);
break;
case 2:
printf("PatternII\n");
printB(n);
break;
case 3:
printf("PatternIII\n");
printC(n);
break;
case 4:
printf("PatternIV\n");
printD(n);
break;
case 5:
return 0;
}
printf("\n1继续,0退出\n");
scanf("%d", &d);
}
return 0;
}