Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để in tiêu đề cột Excel dựa trên số cột nhất định

Vấn đề

Một chương trình để in tiêu đề cột Excel tương ứng với một số cột nhất định (giá trị số nguyên). Người dùng phải nhập số nguyên dựa trên số đã cho, người dùng phải nhập số cột excel.

Giải pháp

Giải pháp để in tiêu đề cột Excel tương ứng với một số cột nhất định trong ngôn ngữ lập trình C được giải thích dưới đây -

Ví dụ 1

Hãy để chúng tôi xem một ví dụ.

1 -> A
2 -> B
...
26 -> Z
27 -> AA
28 -> AB
...

Ví dụ 2

  • Đầu vào như sau -
number = 3
number = 27
number = 151
  • Đầu ra như sau -
Excel column title: C
Excel column title: AA
Excel column title: EU

Ví dụ

Sau đây là chương trình C để in tiêu đề cột Excel tương ứng với một số cột nhất định -

#include <stdio.h>
static char *convert_To_Excel_Title(int column_no){
   if (column_no <= 0) {
      return "";
   }
   char *result = malloc(1024);
   int len = 0;
   do {
      result[len++] = ((column_no - 1) % 26) + 'A';
      column_no = (column_no - 1) / 26;
   } while (column_no > 0);
   result[len] = '\0';
   int i, j;
   for (i = 0, j = len - 1; i < j; i++, j--) {
      char c = result[i];
      result[i] = result[j];
      result[j] = c;
   }
   return result;
}
int main(void){
   int n;
   printf("enter the integer1:");
   scanf("%d",&n);
   printf("Column Number n = %d", n);
   printf("\nExcel column title: %s\n\n ",convert_To_Excel_Title(n));
   printf("enter the integer2:");
   scanf("%d",&n);
   printf("\nColumn Number n = %d", n);
   printf("\nExcel column title: %s\n\n ",convert_To_Excel_Title(n));
   printf("enter the integer3:");
   scanf("%d",&n);
   printf("\n\nColumn Number n = %d", n);
   printf("\nExcel column title: %s ",convert_To_Excel_Title(n));
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

enter the integer1:23
Column Number n = 23
Excel column title: W

enter the integer2:12

Column Number n = 12
Excel column title: L

enter the integer3:69


Column Number n = 69
Excel column title: BQ